重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Linux的udp命令,Linux udp

linux shell命令行向udp端口发送数据

先nc -uv,然后在输入数据即可

成都创新互联是一家专业提供蛟河企业网站建设,专注与成都网站建设、网站建设、成都h5网站建设、小程序制作等业务。10年已为蛟河众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

nc -uvz可以用来测试udp端口是否开启监听

比如要向本地10001端口发送数据,可以使用

echo "hello" /dev/udp/localhost/10001

方法二的好处在于,发送完数据后自动退出。当我们需要在命令行下循环向特定udp端口发送数据时,我们只能使用方法二。

例如

while true

do

echo "xxxx" /dev/udp/localhost/10001

done

求教linux系统用什么命令开启UDP端口

Linux下面没有什么直接开启或者关闭端口的命令,因为若仅仅只是开启了端口而不把它与进程相联系的话,端口的开启与关闭就显得毫无意义了(开了端口却没有程序处理进来的数据)

Linux增加TCP和UDP的本地端口分配范围

ip_local_port_range,TCP和UDP本地端口范围,默认为[32768 , 60999],其中,最小值要求大于等于ip_unprivileged_port_start参数。

ip_unprivileged_port_start,非特权端口开始值,默认为1024.如果应用程序需要绑定小于此值的端口号,需要root权限。

临时调整

永久调整

在/etc/sysctl.d目录下,创建配置文件,将需要调整的参数加入其中即可。配置文件名格式为number-appname.conf。appname可以直接用应用系统运行时的os用户名。

执行以下命令,使之生效。替换掉命令中的文件名。

例如:

Linux使用TPROXY进行UDP的透明代理

在进行TCP的代理时,只要在NET表上无脑进行REDIRECT就好了。例如使用ss-redir,你只要把tcp的流量redirect到ss-redir监听的端口上就OK了。但是当你使用这种方法的时候,就会不正常,因为对于UDP进行redirect之后,原始的目的地址和端口就找不到了。

这是为什么呢?

ss-redir的原理很简单:使用iptables对PREROUTING与OUTPUT的TCP/UDP流量进行REDIRECT(REDIRECT是DNAT的特例),ss—redir在捕获网络流量后,通过一些技术手段获取REDIRECT之前的目的地址(dst)与端口(port),连同网络流量一起转发至远程服务器。

针对TCP连接,的确是因为Linux Kernel连接跟踪机制的实现才使获取数据包原本的dst和port成为可能,但这种连接跟踪机制并非只存在于TCP连接中,UDP连接同样存在,conntrack -p udp便能看到UDP的连接跟踪记录。内核中有关TCP与UDP的NAT源码/net/netfilter/nf_nat_proto_tcp.c和/net/netfilter/nf_nat_proto_udp.c几乎一模一样,都是根据NAT的类型做SNAT或DNAT。

那这究竟是怎么一回事?为什么对于UDP连接就失效了呢?

回过头来看看ss-redir有关获取TCP原本的dst和port的源码,核心函数是getdestaddr:

在内核源码中搜了下有关SO_ORIGINAL_DST的东西,看到了getorigdst:

We only do TCP and SCTP at the moment。Oh,shit!只针对TCP与SCTP才能这么做,并非技术上不可行,只是人为地阻止罢了。

为了在redirect UDP后还能够获取原本的dst和port,ss-redir采用了TPROXY。Linux系统有关TPROXY的设置是以下三条命令:

大意就是在mangle表的PREROUTING中为每个UDP数据包打上0x2333/0x2333标志,之后在路由选择中将具有0x2333/0x2333标志的数据包投递到本地环回设备上的1080端口;对监听0.0.0.0地址的1080端口的socket启用IP_TRANSPARENT标志,使IPv4路由能够将非本机的数据报投递到传输层,传递给监听1080端口的ss-redir。IP_RECVORIGDSTADDR与IPV6_RECVORIGDSTADDR则表示获取送达数据包的dst与port。

可问题来了:要知道mangle表并不会修改数据包,那么TPROXY是如何做到在不修改数据包的前提下将非本机dst的数据包投递到换回设备上的1080端口呢?

这个问题在内核中时如何实现的,还待研究,但是确定是TPROXY做了某些工作。

TPROXY主要功能:

TPROXY要解决的两个重要的问题

参考:


标题名称:Linux的udp命令,Linux udp
当前链接:http://cqcxhl.cn/article/hedgdg.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP