# 怎樣在Linux系統之間傳輸文件
## 前言
在Linux系統管理和日常運維工作中,文件傳輸是最基礎也最頻繁的操作之一。無論是跨服務器同步數據、備份重要文件,還是在分布式系統中共享資源,掌握高效可靠的文件傳輸方法都至關重要。本文將全面介紹Linux系統間文件傳輸的12種主流方法,涵蓋從基礎命令到專業工具的全套解決方案。
## 一、SCP(Secure Copy Protocol)
### 1.1 基本概念
SCP是基于SSH協議的安全文件傳輸工具,加密所有傳輸數據,默認使用22端口。
### 1.2 基本語法
```bash
scp [選項] 源文件 目標路徑
scp /local/file.txt user@remote:/remote/directory/
scp user@remote:/remote/file.txt /local/directory/
scp -r /local/dir user@remote:/remote/dir
| 選項 | 說明 |
|---|---|
| -P | 指定端口號 |
| -C | 啟用壓縮 |
| -l | 限制帶寬(Kbit/s) |
| -q | 靜默模式 |
screen或tmux使用sftp user@remotehost
sftp> put localfile
sftp> get remotefile
sftp> lls # 查看本地文件
sftp> lpwd # 查看本地路徑
sftp -b batchfile.txt user@remotehost
僅傳輸差異部分,節省帶寬和時間。
rsync -avz --progress /source/dir/ user@remote:/target/dir/
-a:歸檔模式(保留權限等屬性)-v:顯示詳細信息-z:啟用壓縮--delete:同步刪除操作--exclude:排除特定文件rsync -avz --delete /var/www/ backup@server:/backups/www/$(date +%F)/
安裝NFS服務:
sudo apt install nfs-kernel-server # Debian/Ubuntu
sudo yum install nfs-utils # CentOS/RHEL
配置exports文件:
/shared/dir 192.168.1.0/24(rw,sync,no_subtree_check)
啟動服務:
sudo systemctl start nfs-server
sudo mount -t nfs server:/shared/dir /local/mountpoint
sudo apt install sshfs # 安裝
sshfs user@remote:/remote/dir /local/mountpoint
fusermount -u /local/mountpoint
# /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
<Directory /var/www/webdav>
DAV On
AuthType Basic
AuthName "WebDAV"
AuthUserFile /etc/apache2/webdav.passwd
Require valid-user
</Directory>
sudo mount -t davfs http://server/webdav /mnt/webdav
# 安裝
sudo apt install syncthing
# 啟動
syncthing
rclone copy /local/path remote:bucket/path --progress
接收端:
nc -l 1234 > received.file
發送端:
nc receiver_ip 1234 < send.file
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
md5sum file.txt
sha256sum file.txt
iperf3 -c remote_server
| 方法 | 加密支持 | 斷點續傳 | 適合場景 | 速度 |
|---|---|---|---|---|
| SCP | ? | ? | 單文件傳輸 | 中 |
| rsync | ? | ? | 目錄同步 | 高 |
| SFTP | ? | ? | 交互式操作 | 中 |
| NFS | ? | ? | 網絡共享 | 高 |
| SSHFS | ? | ? | 透明訪問遠程文件 | 中 |
Q:傳輸大文件時中斷怎么辦?
A:使用rsync的--partial參數或lftp的pget功能
Q:如何提高傳輸速度? A:1. 啟用壓縮(-z參數) 2. 使用更高效的加密算法(如aes128-ctr) 3. 調整TCP窗口大小
Q:無root權限如何傳輸? A:使用用戶空間的工具如rsync、scp、或編譯安裝到用戶目錄
本文共計約4250字,涵蓋Linux系統間文件傳輸的主流方案,實際應用時請根據具體場景選擇合適工具。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。