姓朱者學(xué)屠龍于支離益剧罩,單千金之家,三年技成座泳,而無(wú)所用其巧惠昔。
戰(zhàn)國(guó)·鄭·列御寇《莊子·列御寇》
CentOS安裝 socat
yum update -y & yum install socat -y
1、TCP端口轉(zhuǎn)發(fā)
socat -d TCP4-LISTEN:80,reuseaddr,fork TCP4:127.0.0.1:8080
2挑势、UDP端口轉(zhuǎn)發(fā)
socat -T 600 UDP4-LISTEN:5353,reuseaddr,fork UDP4:114.114.114.114:5353
- 配合nohup使用
nohup socat -T 600 UDP4-LISTEN:5353,reuseaddr,fork UDP4:114.114.114.114:5353 >> socat.log 2>&1 &
3镇防、文件傳輸
- 服務(wù)端:
socat -u open:FILENAME tcp-listen:12345
- 客戶(hù)端
socat -u tcp:ServerIP:12345 open:LOCALFILE,create
【說(shuō)明】
-u 表示數(shù)據(jù)單向傳送,從第一個(gè)參數(shù)傳遞到第二個(gè)參數(shù)潮饱;
-U則表示從第二個(gè)參數(shù)傳送到第一個(gè)參數(shù)来氧。
open 表示使用系統(tǒng)調(diào)用open()打開(kāi)文件,不能打開(kāi)unix域socket香拉。
tcp-listen 表示監(jiān)聽(tīng)tcp端口饲漾。
create 表示如果文件不存在則創(chuàng)建。
傳輸結(jié)束后兩端均退出缕溉。
4考传、讀寫(xiě)分離
使用!!符號(hào),左側(cè)表示讀证鸥,右側(cè)表示寫(xiě)
socat open:hello.html\!\!open:log.txt,create,append tcp-listen:12345,reuseaddr,fork
- 說(shuō)明
open:hello.html 表示讀hello.html文件僚楞。
open:log.txt 表示收到的數(shù)據(jù)寫(xiě)入log.txt文件勤晚。
reuseaddr 見(jiàn)socket的SO_REUSEADDR。
fork 請(qǐng)求到達(dá)時(shí)泉褐,fork一個(gè)進(jìn)程進(jìn)行處理赐写。
在bash下,需要用\對(duì)!進(jìn)行轉(zhuǎn)義膜赃。