先nc -uv,然后在输入数据即可
nc -uvz可以用来测试udp端口是否开启监听
比如要向本地10001端口发送数据,可以使用
echo "hello" /dev/udp/localhost/10001
方法二的好处在于,发送完数据后自动退出.当我们需要在命令行下循环向特定udp端口发送数据时,我们只能使用方法二.
例如
while true
do
echo "xxxx" /dev/udp/localhost/10001
done
Linux下面没有什么直接开启或者关闭端口的命令,因为若仅仅只是开启了端口而不把它与进程相联系的话,端口的开启与关闭就显得毫无意义了(开了端口却没有程序处理进来的数据)
临时调整
永久调整
在/etc/sysctl.d目录下,创建配置文件,将需要调整的参数加入其中即可.配置文件名格式为number-appname.conf.appname可以直接用应用系统运行时的os用户名.
执行以下命令,使之生效.替换掉命令中的文件名.
例如:
在进行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的设置是以下三条命令:
这个问题在内核中时如何实现的,还待研究,但是确定是TPROXY做了某些工作.
TPROXY主要功能:
TPROXY要解决的两个重要的问题
参考:
以上就是土嘎嘎小编为大家整理的Linux的udp命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!