先nc -uv,然后在輸入數(shù)據(jù)即可
成都創(chuàng)新互聯(lián)是一家專業(yè)提供蛟河企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為蛟河眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
nc -uvz可以用來(lái)測(cè)試udp端口是否開(kāi)啟監(jiān)聽(tīng)
比如要向本地10001端口發(fā)送數(shù)據(jù),可以使用
echo "hello" /dev/udp/localhost/10001
方法二的好處在于,發(fā)送完數(shù)據(jù)后自動(dòng)退出。當(dāng)我們需要在命令行下循環(huán)向特定udp端口發(fā)送數(shù)據(jù)時(shí),我們只能使用方法二。
例如
while true
do
echo "xxxx" /dev/udp/localhost/10001
done
Linux下面沒(méi)有什么直接開(kāi)啟或者關(guān)閉端口的命令,因?yàn)槿魞H僅只是開(kāi)啟了端口而不把它與進(jìn)程相聯(lián)系的話,端口的開(kāi)啟與關(guān)閉就顯得毫無(wú)意義了(開(kāi)了端口卻沒(méi)有程序處理進(jìn)來(lái)的數(shù)據(jù))
ip_local_port_range,TCP和UDP本地端口范圍,默認(rèn)為[32768 , 60999],其中,最小值要求大于等于ip_unprivileged_port_start參數(shù)。
ip_unprivileged_port_start,非特權(quán)端口開(kāi)始值,默認(rèn)為1024.如果應(yīng)用程序需要綁定小于此值的端口號(hào),需要root權(quán)限。
臨時(shí)調(diào)整
永久調(diào)整
在/etc/sysctl.d目錄下,創(chuàng)建配置文件,將需要調(diào)整的參數(shù)加入其中即可。配置文件名格式為number-appname.conf。appname可以直接用應(yīng)用系統(tǒng)運(yùn)行時(shí)的os用戶名。
執(zhí)行以下命令,使之生效。替換掉命令中的文件名。
例如:
在進(jìn)行TCP的代理時(shí),只要在NET表上無(wú)腦進(jìn)行REDIRECT就好了。例如使用ss-redir,你只要把tcp的流量redirect到ss-redir監(jiān)聽(tīng)的端口上就OK了。但是當(dāng)你使用這種方法的時(shí)候,就會(huì)不正常,因?yàn)閷?duì)于UDP進(jìn)行redirect之后,原始的目的地址和端口就找不到了。
這是為什么呢?
ss-redir的原理很簡(jiǎn)單:使用iptables對(duì)PREROUTING與OUTPUT的TCP/UDP流量進(jìn)行REDIRECT(REDIRECT是DNAT的特例),ss—redir在捕獲網(wǎng)絡(luò)流量后,通過(guò)一些技術(shù)手段獲取REDIRECT之前的目的地址(dst)與端口(port),連同網(wǎng)絡(luò)流量一起轉(zhuǎn)發(fā)至遠(yuǎn)程服務(wù)器。
針對(duì)TCP連接,的確是因?yàn)長(zhǎng)inux Kernel連接跟蹤機(jī)制的實(shí)現(xiàn)才使獲取數(shù)據(jù)包原本的dst和port成為可能,但這種連接跟蹤機(jī)制并非只存在于TCP連接中,UDP連接同樣存在,conntrack -p udp便能看到UDP的連接跟蹤記錄。內(nèi)核中有關(guān)TCP與UDP的NAT源碼/net/netfilter/nf_nat_proto_tcp.c和/net/netfilter/nf_nat_proto_udp.c幾乎一模一樣,都是根據(jù)NAT的類型做SNAT或DNAT。
那這究竟是怎么一回事?為什么對(duì)于UDP連接就失效了呢?
回過(guò)頭來(lái)看看ss-redir有關(guān)獲取TCP原本的dst和port的源碼,核心函數(shù)是getdestaddr:
在內(nèi)核源碼中搜了下有關(guān)SO_ORIGINAL_DST的東西,看到了getorigdst:
We only do TCP and SCTP at the moment。Oh,shit!只針對(duì)TCP與SCTP才能這么做,并非技術(shù)上不可行,只是人為地阻止罷了。
為了在redirect UDP后還能夠獲取原本的dst和port,ss-redir采用了TPROXY。Linux系統(tǒng)有關(guān)TPROXY的設(shè)置是以下三條命令:
大意就是在mangle表的PREROUTING中為每個(gè)UDP數(shù)據(jù)包打上0x2333/0x2333標(biāo)志,之后在路由選擇中將具有0x2333/0x2333標(biāo)志的數(shù)據(jù)包投遞到本地環(huán)回設(shè)備上的1080端口;對(duì)監(jiān)聽(tīng)0.0.0.0地址的1080端口的socket啟用IP_TRANSPARENT標(biāo)志,使IPv4路由能夠?qū)⒎潜緳C(jī)的數(shù)據(jù)報(bào)投遞到傳輸層,傳遞給監(jiān)聽(tīng)1080端口的ss-redir。IP_RECVORIGDSTADDR與IPV6_RECVORIGDSTADDR則表示獲取送達(dá)數(shù)據(jù)包的dst與port。
可問(wèn)題來(lái)了:要知道m(xù)angle表并不會(huì)修改數(shù)據(jù)包,那么TPROXY是如何做到在不修改數(shù)據(jù)包的前提下將非本機(jī)dst的數(shù)據(jù)包投遞到換回設(shè)備上的1080端口呢?
這個(gè)問(wèn)題在內(nèi)核中時(shí)如何實(shí)現(xiàn)的,還待研究,但是確定是TPROXY做了某些工作。
TPROXY主要功能:
TPROXY要解決的兩個(gè)重要的問(wèn)題
參考:
分享文章:Linux的udp命令,Linux udp
本文網(wǎng)址:http://chinadenli.net/article16/hedgdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、ChatGPT、商城網(wǎng)站、自適應(yīng)網(wǎng)站、、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)