我很好奇,如果今天我要把東西(複製一份)傳給網路上的server,我可以怎麼做?
總不能說: 「hey yoo my dear friend,等我一下,我去找個 USB 來傳資料」
既然昨天我可以用 ssh 去操控電腦,哪我們就可以用 ssh 的協議去複製檔案到其他電腦了,按照慣例,先上拓譜圖
如果我有檔案(veryimportent.txt)在 Ubuntu1 的家目錄(/home/ubuntu/)上,要把東西從 Ubuntu1(10.250.250.200) 傳送到 Ubuntu2(10.250.250.199) 的家目錄(/home/ubuntu/)上就可以這樣用
scp ./veryimportent.txt ubuntu@10.250.250.199:/home/ubuntu
scp ubuntu@10.250.250.200:/home/ubuntu/veryimportent.txt /home/ubuntu/
傳輸時截取封包應該回得到這
那有沒有其他方法呢?
我們可以用 netcat 但是是否安全,等下看封包就知道了
我們可以叫 netcat 去聽任意一個埠,使用指令 nc -l 250
(需要用 root 權限)
但還差一點,因為它只會把聽到的東西印出來。所以如果只傳一個東西的話,我們可以使用管道指令(pipe command) 去把東西放到 veryimportentMSG.txt
裡面去,用 netcat -l 250 > veryimportentMSG.txt
。
在發送方,我們同樣用管道指令去把東西送出去,用cat veryimportent.txt | nc 10.250.250.199 250 -q 0
-q
這裡的功能就是叫接收方這個埠不用再聽了,還有ip 那之後的埠號要跟接收方設定的埠號設定一樣,不然會做無效傳輸。
傳送完後應該會得到這樣的 封包
打開後應該會看到這,
可以說很明顯了,簡單歸簡單,但好像不太安全ㄟ