什麼是nc
nc是netcat的簡寫,有著網路界的瑞士軍刀美譽。因為它短小精悍、功能實用,被設計為乙個簡單、可靠的網路工具
nc的作用
(1)實現任意tcp/udp埠的偵聽,nc可以作為server以tcp或udp方式偵聽指定埠
(2)埠的掃瞄,nc可以作為client發起tcp或udp連線
(3)機器之間傳輸檔案
(4)機器之間網路測速
nc的控制引數不少,常用的幾個引數如下所列:
1) -l
用於指定nc將處於偵聽模式。指定該引數,則意味著nc被當作server,偵聽並接受連線,而非向其它位址發起連線。
2) -p
暫未用到(老版本的nc可能需要在埠號前加-p引數,下面測試環境是centos6.6,nc版本是nc-1.84,未用到-p引數)
3) -s
指定傳送資料的源ip位址,適用於多網絡卡機
4) -u
指定nc使用udp協議,預設為tcp
5) -v
輸出互動或出錯資訊,新手除錯時尤為有用
6)-w
超時秒數,後面跟數字
7)-z
表示zero,表示掃瞄時不傳送任何資料
nc用法1,網路連通性測試和埠掃瞄
nc可以作為server端啟動乙個tcp的監聽(注意,此處重點是起tcp,下面還會講udp)
先關閉a的防火牆,或者放行下面埠,然後測試b機器是否可以訪問a機器啟動的埠
在a機器上啟動乙個埠監聽,比如 9999埠(注意:下面的-l 是小寫的l,不是數字1)
預設情況下下面監聽的是乙個tcp的埠
nc -l 9999
nc用法2,使用nc傳輸檔案和目錄
方法1,傳輸檔案演示(先啟動接收命令)
使用nc傳輸檔案還是比較方便的,因為不用scp和rsync那種輸入密碼的操作了
把a機器上的乙個rpm檔案傳送到b機器上
需注意操作次序,receiver先偵聽埠,sender向receiver所在機器的該埠傳送資料。
步驟1,先在b機器上啟動乙個接收檔案的監聽,格式如下
意思是把賴在9995埠接收到的資料都寫到file檔案裡(這裡檔名隨意取)
nc -l port >file
nc -l 9995 >zabbix.rpm
步驟2,在a機器上往b機器的9995埠傳送資料,把下面rpm包傳送過去
nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm
方法3,傳輸目錄演示(方法傳送檔案類似)
步驟1,b機器先啟動監聽,如下
a機器給b機器傳送多個檔案
傳輸目錄需要結合其它的命令,比如tar
經過我的測試管道後面最後必須是 - ,不能是其餘自定義的檔名
nc -l 9995 | tar xfvz -
步驟2,a機器打包檔案並連線b機器的埠
管道前面表示把當前目錄的所有檔案打包為 - ,然後使用nc傳送給b機器
tar cfz - * | nc 10.0.1.162 9995
nc用法3,測試網速
測試網速其實利用了傳輸檔案的原理,就是把來自一台機器的/dev/zero 傳送給另一台機器的/dev/null
就是把一台機器的無限個0,傳輸給另乙個機器的空裝置上,然後新開乙個視窗使用dstat命令監測網速
在這之前需要保證機器先安裝dstat工具
yum install -y dstat
方法1,測試網速演示(先啟動接收命令方式)
步驟1,a機器先啟動接收資料的命令,監聽自己的9991埠,把來自這個埠的資料都輸出給空裝置(這樣不寫磁碟,測試網速更準確)
nc -l 9991 >/dev/null
步驟2,b機器傳送資料,把無限個0傳送給a機器的9991埠
nc 10.0.1.161 9991
at 命令用法
at命令的用法 at列出在指定的時間和日期在計算機上執行的已計畫命令或計畫命令和程式。必須正在執行 計畫 服務才能使用 at 命令。at computername id delete delete yes at computername time interactive every date nex...
at命令的用法
at命令的用法 at interactive every 比如 我們每週的周一到周五6 00執行記事本程式,那麼可以直接輸入 at 6 00 every monday,tuesday,wednesday,thursday,friday,saturday,sunday notepad.exe at 2...
at命令的用法
at命令的用法 at列出在指定的時間和日期在計算機上執行的已計畫命令或計畫命令和程式。必須正在執行 計畫 服務才能使用 at 命令。at computername id delete delete yes at computername time interactive every date nex...