# 彈性週 (剩下的 ssh、TCP/IP、DNS) [TOC] # ssh ## 遠端檔案傳輸 ### FTP操作 * ftp [ip address] 登入 * (公眾的 server,username 可輸入anonymous作為匿名,密碼可空白) * put [client_file] [server_pwd] 上傳檔案 * get [file] [client_pwd] 下載檔案 * ls 跟 cd 與Linux指令一樣 * lpwd 顯示本機端目前位置/ lcd 切換本機端位置 * bye 退出 ### SFTP * **S**SH **F**ile **T**ransfer **P**rotocol * 指令和FTP語法基本一樣 * 是SSH的一部分 | 特性 | FTP | SFTP | | ------ |:---:|:---:| | 效率 | 🏆 | | | 安全性 | | 🏆 | ### SCP * scp 為遠端複製檔案 - 用法 - scp [參數] [source] [destination] * 本機上傳至遠端 - scp [本機檔案路徑] [usr_name]@[hostname]:[遠端檔案路徑] - path 不輸入則為家目錄 * 遠端下載到本機 - scp [usr_name]@[hostname]:[遠端檔案路徑] [本機檔案路徑] ### Rsync * Rsync 能做到 cp 跟 scp 的事,但 Rsync 的效率更好 * 如複製時發現有一樣檔案在裡面,會利用 delta-transfer 演算法檢查新舊檔案之間的差異,只傳送有變動的部份 - 節省複製的時間,可加快備份速度(大檔案傳輸時會有更明顯的差異) - 進行遠端傳輸時,可節省網路頻寬 * #### rsync操作 - 為內建工具,但如果沒安裝: - sudo apt install rsync * #### 基礎語法 - rsync [參數] [來源檔案] [目的檔案] * 常見參數 | 參數 | 說明 | |-------|------| | -v | verbose 模式,輸出較詳細的訊息。| | -a | 封裝備份模式,遞迴備份所有子目錄下的目錄與檔案,保留連結檔、檔案的擁有者、群組、權限以及時間戳記。 | | -z | 啟用壓縮。| | -h | 將數字以較容易閱讀的格式輸出。| | -P / --progress | 顯示傳輸進度。| | --delete | 同步將不存在於來源端的檔案刪除。| ### ssh tunnel - **==L==ocal Port Forwarding** - `ssh -L [bind_address:][client_port]:[host]:[target_server_port] [username]@[server]` - 本地電腦client繞過防火牆連線到特定server的特定port - **==R==emote Port Forwarding** - `ssh -R [bind_address:][ssh_server_port]:[host]:[client_port] [username]@[server]` - 其他電腦透過對外機器ssh server取得本地電腦client服務 - **==D==ynamic Port Forwarding** - `ssh -D [bind_address:][client_port] [username]@[server]` - 類似local,但不指定連到特定server的哪個port,而是接到代理伺服器proxy # TCP/IP
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up