วิธีใช้คำสั่ง FTP บน Linux

File Transfer Protocol เก่ากว่าผู้อ่านส่วนใหญ่ของเรา แต่ก็ยังคงแข็งแกร่ง FTP ไม่มีความปลอดภัยของโปรโตคอลสมัยใหม่ แต่คุณอาจต้องใช้ต่อไป นี่คือวิธีการทำ

คำเตือน: อย่าใช้ FTP ผ่านอินเทอร์เน็ต

มาทำให้สิ่งนี้ชัดเจนตั้งแต่เริ่มแรก: File Transfer Protocol (FTP) ย้อนกลับไปในช่วงต้นทศวรรษ 1970 และเขียนขึ้นโดยไม่คำนึงถึงความปลอดภัย ไม่ใช้การเข้ารหัสเพื่ออะไร ข้อมูลรับรองการเข้าสู่ระบบเช่นชื่อผู้ใช้และรหัสผ่านของคุณตลอดจนข้อมูลที่คุณดาวน์โหลดหรืออัปโหลดจะถูกถ่ายโอนเป็นข้อความที่ชัดเจน ทุกคนระหว่างทางสามารถดูความลับของคุณได้ อย่างไรก็ตาม FTP ยังคงมีการใช้งานอยู่

หากคุณกำลังถ่ายโอนไฟล์ภายในเครือข่ายของคุณคุณควรปลอดภัยตราบเท่าที่ไม่มีใครในเครือข่ายกำลังดักจับข้อมูลแพ็กเก็ตและดักฟังเอกสารที่ละเอียดอ่อนใด ๆ ในขณะที่คุณถ่ายโอน หากไฟล์ของคุณไม่เป็นความลับหรือมีความละเอียดอ่อน แต่อย่างใดการย้ายไฟล์ไปรอบ ๆ เครือข่ายภายในของคุณด้วย FTP ก็ทำได้ดี Linux มีftpโปรแกรมบรรทัดคำสั่งมาตรฐานเพื่อจัดการกับสถานการณ์นั้นอย่างแม่นยำ

แต่แน่นอนไม่ได้ใช้  ftp คำสั่งในการเข้าถึงทรัพยากรภายนอกผ่านทางอินเทอร์เน็ต สำหรับสิ่งนั้นให้ใช้sftpโปรแกรมบรรทัดคำสั่งซึ่งใช้ SSH File Transfer Protocol ที่ปลอดภัย เราจะแนะนำทั้งสองโปรแกรมนี้ในบทช่วยสอนนี้

หากต้องการชี้แจงว่าเหตุใดคุณจึงไม่ต้องการใช้ FTP ผ่านอินเทอร์เน็ตโปรดดูภาพหน้าจอด้านล่าง มันแสดงรหัสผ่าน FTP ในข้อความธรรมดา ทุกคนในเครือข่ายของคุณหรือระหว่างคุณกับเซิร์ฟเวอร์ FTP บนอินเทอร์เน็ตสามารถดูรหัสผ่านคือ“ MySecretPassword” ได้อย่างง่ายดาย

หากไม่มีการเข้ารหัสผู้ประสงค์ร้ายสามารถแก้ไขไฟล์ที่คุณกำลังดาวน์โหลดหรืออัปโหลดระหว่างการส่งได้เช่นกัน

คำสั่ง ftp

สมมติว่าคุณมีบัญชีที่ถูกต้องบนไซต์ FTP คุณสามารถเชื่อมต่อได้ด้วยคำสั่งต่อไปนี้ ในบทความนี้ให้แทนที่ที่อยู่ IP ในคำสั่งด้วยที่อยู่ IP ของเซิร์ฟเวอร์ FTP ที่คุณกำลังเชื่อมต่อ

ftp 192.168.4.25

คำเตือน : คุณควรใช้ftpคำสั่งเพื่อเชื่อมต่อกับเซิร์ฟเวอร์บนเครือข่ายท้องถิ่นที่เชื่อถือได้เท่านั้น ใช้sftpคำสั่งที่กล่าวถึงด้านล่างสำหรับการถ่ายโอนไฟล์ผ่านอินเทอร์เน็ต

เซิร์ฟเวอร์ FTP ตอบกลับด้วยข้อความต้อนรับ คำทักทายจะแตกต่างกันไปในแต่ละเซิร์ฟเวอร์ จากนั้นจะถามชื่อผู้ใช้ของบัญชีที่คุณกำลังเข้าสู่ระบบ

สังเกตว่าที่อยู่ IP ของไซต์ที่คุณกำลังเชื่อมต่อจะแสดงขึ้นตามด้วยชื่อผู้ใช้ Linux ของคุณ หากชื่อบัญชีของคุณบนเซิร์ฟเวอร์ FTP เหมือนกับชื่อผู้ใช้ Linux ของคุณเพียงแค่กดปุ่ม Enter ซึ่งจะใช้ชื่อผู้ใช้ Linux ของคุณเป็นชื่อบัญชีบนเซิร์ฟเวอร์ FTP หากชื่อผู้ใช้ Linux และชื่อบัญชี FTP แตกต่างกันให้พิมพ์ชื่อผู้ใช้บัญชี FTP จากนั้นกด Enter

เข้าสู่ระบบเซิร์ฟเวอร์ FTP

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านสำหรับไซต์ FTP ป้อนรหัสผ่านของคุณแล้วกด Enter รหัสผ่านของคุณไม่ปรากฏบนหน้าจอ หากชื่อบัญชีผู้ใช้ FTP และรหัสผ่านของคุณได้รับการตรวจสอบโดยเซิร์ฟเวอร์ FTP คุณจะเข้าสู่เซิร์ฟเวอร์ FTP

คุณจะได้รับพร้อมftp>ท์

มองไปรอบ ๆ และดึงไฟล์

ขั้นแรกคุณอาจต้องการรับรายชื่อไฟล์บนเซิร์ฟเวอร์ FTP lsคำสั่งไม่เพียงแค่นั้น ผู้ใช้ของเราเห็นว่าไฟล์gc.cอยู่บนเซิร์ฟเวอร์ FTP และเขาต้องการดาวน์โหลดลงในคอมพิวเตอร์ของเขาเอง คอมพิวเตอร์ของเขาคือ "คอมพิวเตอร์เฉพาะที่" ในสำนวน FTP

คำสั่งในการดึง (หรือ“ get”) ไฟล์คือget. get gc.cผู้ใช้ของเราจึงออกคำสั่ง พวกเขาพิมพ์getช่องว่างและชื่อของไฟล์ที่ต้องการเรียกค้น

เซิร์ฟเวอร์ FTP ตอบสนองโดยการถ่ายโอนไฟล์ไปยังเครื่องคอมพิวเตอร์และยืนยันการถ่ายโอนเกิดขึ้น ขนาดของไฟล์และเวลาที่ใช้ในการถ่ายโอนจะแสดงด้วย

ls
รับ gc.c

ในการดึงไฟล์หลายไฟล์พร้อมกันให้ใช้  mgetคำสั่ง (multiple get) mgetคำสั่งจะขอให้คุณยืนยันว่าคุณต้องการดาวน์โหลดไฟล์ในการเปิดแต่ละ ตอบสนองโดยการกด“ y” เพื่อใช่และ“ n” สำหรับไม่ใช่

สิ่งนี้จะน่าเบื่อสำหรับไฟล์จำนวนมาก ด้วยเหตุนี้คอลเลกชันของไฟล์ที่เกี่ยวข้องมักจะถูกเก็บไว้ในไซต์ ftp เป็นไฟล์ tar.gz หรือ tar.bz2 ไฟล์เดียว

ที่เกี่ยวข้อง: วิธีการแตกไฟล์จากไฟล์. tar.gz หรือ. tar.bz2 บน Linux

mget * .c

การอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ FTP

ขึ้นอยู่กับสิทธิ์ที่ได้รับอนุญาตให้กับบัญชี FTP ของคุณคุณอาจสามารถอัปโหลด (หรือ "ใส่") ไฟล์ไปยังเซิร์ฟเวอร์ได้ ในการอัปโหลดไฟล์ให้ใช้putคำสั่ง ในตัวอย่างของเราผู้ใช้กำลังอัปโหลดไฟล์ที่เรียกSongs.tar.gzไปยังเซิร์ฟเวอร์ FTP

ใส่ Songs.tar.gz

อย่างที่คุณคาดหวังมีคำสั่งให้ใส่ไฟล์หลายไฟล์ไปยังเซิร์ฟเวอร์ FTP พร้อมกัน เรียกว่าmput(หลายใส่) เช่นเดียวกับmgetคำสั่งmputจะขอการยืนยัน“ y” หรือ“ n” สำหรับการอัปโหลดไฟล์แต่ละไฟล์ทีละไฟล์

อาร์กิวเมนต์เดียวกันสำหรับการวางชุดไฟล์ลงในไฟล์เก็บถาวร tar ใช้สำหรับการวางไฟล์เช่นเดียวกับการรับไฟล์ ผู้ใช้ของเรากำลังอัปโหลดไฟล์“ .odt” หลายไฟล์โดยใช้คำสั่งต่อไปนี้:

mput * .odt

การสร้างและการเปลี่ยนไดเร็กทอรี

หากบัญชีผู้ใช้ของคุณบนเซิร์ฟเวอร์ ftp อนุญาตคุณอาจสร้างไดเร็กทอรีได้ mkdirคำสั่งที่จะทำคือ เพื่อความชัดเจนไดเร็กทอรีใด ๆ ที่คุณสร้างด้วยmkdirคำสั่งจะถูกสร้างขึ้นบนเซิร์ฟเวอร์ ftp ไม่ใช่ในคอมพิวเตอร์ของคุณ

ในการเปลี่ยนไดเร็กทอรีบนเซิร์ฟเวอร์ ftp ให้ใช้cdคำสั่ง เมื่อคุณใช้cdคำสั่งftp>พรอมต์จะไม่เปลี่ยนเพื่อแสดงไดเร็กทอรีปัจจุบันใหม่ของคุณ pwd(พิมพ์ไดเรกทอรีทำงาน) คำสั่งจะแสดงไดเรกทอรีปัจจุบันของคุณ

ผู้ใช้ ftp ของเราสร้างไดเร็กทอรีชื่อเพลงเปลี่ยนเป็นไดเร็กทอรีใหม่ยืนยันว่าอยู่ที่ไหนโดยใช้pwdคำสั่งจากนั้นอัปโหลดไฟล์ไปยังไดเร็กทอรีนั้น

เพลง mkdir
ซีดีเพลง
pwd
ใส่ songs.tar.gz

หากต้องการย้ายไปยังไดเร็กทอรีหลักของไดเร็กทอรีปัจจุบันอย่างรวดเร็วให้ใช้cdupคำสั่ง

cdup

การเข้าถึงคอมพิวเตอร์ท้องถิ่น

หากต้องการเปลี่ยนไดเร็กทอรีบนคอมพิวเตอร์เฉพาะที่คุณสามารถใช้lcdคำสั่งที่ftp>พร้อมต์ อย่างไรก็ตามง่ายต่อการติดตามว่าคุณอยู่ที่ไหนในระบบไฟล์ภายในเครื่อง วิธีที่สะดวกกว่าในการเข้าถึงระบบไฟล์ภายในคือการใช้!คำสั่ง

!คำสั่งเปิดหน้าต่างเปลือกกับเครื่องคอมพิวเตอร์ คุณสามารถทำอะไรก็ได้ในเชลล์นี้ที่ทำได้ในหน้าต่างเทอร์มินัลมาตรฐาน เมื่อคุณพิมพ์exitคุณจะกลับไปที่ftp>พร้อมต์

ผู้ใช้ของเราได้ใช้!คำสั่งและเข้าสู่หน้าต่างเชลล์บนเครื่องคอมพิวเตอร์ พวกเขาได้ออกlsคำสั่งเพื่อดูว่ามีไฟล์อะไรอยู่ในไดเร็กทอรีนั้นแล้วพิมพ์exitเพื่อกลับไปที่ftp>พรอมต์

!
ls
ทางออก

การเปลี่ยนชื่อไฟล์

ในการเปลี่ยนชื่อไฟล์บนเซิร์ฟเวอร์ FTP ให้ใช้renameคำสั่ง ที่นี่ผู้ใช้ FTP ของเราเปลี่ยนชื่อไฟล์ด้วยrenameแล้วใช้lsคำสั่งเพื่อแสดงรายการไฟล์ในไดเร็กทอรี

เปลี่ยนชื่อ songs.tar.gz rock_songs.tar.gz
ls

การลบไฟล์

ในการลบไฟล์บนเซิร์ฟเวอร์ FTP ให้ใช้deleteคำสั่ง หากต้องการลบไฟล์หลายไฟล์พร้อมกันให้ใช้mdeleteคำสั่ง คุณจะถูกขอให้ระบุการยืนยัน "y" หรือ "n" สำหรับการลบไฟล์แต่ละไฟล์

ที่นี่ผู้ใช้ FTP ของเราได้แสดงรายการไฟล์เพื่อดูชื่อของพวกเขาจากนั้นเลือกไฟล์ที่จะลบ จากนั้นพวกเขาตัดสินใจที่จะลบออกทั้งหมด

ls
ลบ gc.o
mdelete * .o

ใช้คำสั่ง sftp

ผู้อ่านที่คุ้นเคยกับระบบที่อยู่ IP จะสังเกตเห็นว่าที่อยู่ 192.168 ของเซิร์ฟเวอร์ FTP ที่ใช้ในตัวอย่างข้างต้นเป็นที่อยู่ IP ภายในหรือที่เรียกว่าที่อยู่ IP ส่วนตัว ตามที่เราเตือนในตอนต้นของบทความนี้ftpคำสั่งนี้ควรใช้กับเครือข่ายภายในเท่านั้น

หากคุณต้องการเชื่อมต่อกับเซิร์ฟเวอร์ FTP ระยะไกลหรือสาธารณะให้ใช้sftpคำสั่ง ผู้ใช้ของเราจะไปเชื่อมต่อกับบัญชี SFTP ที่เรียกว่าdemoบน FTP test.trebex.netเซิร์ฟเวอร์ที่สาธารณชนสามารถเข้าถึงตั้งอยู่ที่

เมื่อเชื่อมต่อพวกเขาจะได้รับแจ้งว่าได้สร้างการเชื่อมต่อแล้ว นอกจากนี้ยังได้รับแจ้งว่าไม่สามารถตรวจสอบความถูกต้องของโฮสต์ได้ นี่เป็นเรื่องปกติสำหรับการเชื่อมต่อครั้งแรกกับโฮสต์ใหม่ พวกเขากด "y" เพื่อยอมรับการเชื่อมต่อ

เนื่องจากชื่อบัญชีผู้ใช้ ( demo) ถูกส่งผ่านในบรรทัดคำสั่งจึงไม่ได้รับพร้อมต์สำหรับชื่อบัญชีผู้ใช้ ระบบจะแจ้งให้ใส่รหัสผ่านเท่านั้น สิ่งนี้ถูกป้อนตรวจสอบและยอมรับแล้วและจะแสดงพร้อมsftp>ต์

sftp [email protected]

คำสั่ง FTP ที่เราได้อธิบายไว้ข้างต้นจะทำงานเหมือนกันในเซสชัน SFTP โดยมีข้อยกเว้นดังต่อไปนี้

  • การลบไฟล์โดยใช้rm(ใช้ FTP delete)
  • ในการลบไฟล์หลายไฟล์ให้ใช้rm(ใช้ FTP mdelete)
  • หากต้องการย้ายไปยังไดเรกทอรีหลักให้ใช้cd ..(ใช้ FTP cdup)

ผู้ใช้ของเราใช้คำสั่งสองสามคำสั่งในเซสชัน SFTP พวกเขาใช้lsเพื่อแสดงรายการไฟล์และcdเปลี่ยนเป็นไดเร็กทอรี pub พวกเขาใช้pwdเพื่อพิมพ์ไดเร็กทอรีการทำงาน

มีตัวเลือกอื่น ๆ ในการถ่ายโอนไฟล์ในโลกของ Linux โดยเฉพาะอย่างยิ่งscp(สำเนาปลอดภัย) แต่เรามุ่งเน้นไปที่ FTP และ SFTP ที่นี่ ใช้ในสถานการณ์ที่เกี่ยวข้องคำสั่งทั้งสองนี้จะให้บริการคุณและการจัดเก็บไฟล์และการเรียกค้นต้องดี