生命不息
折腾不止

教程:如何判断UDP是否发送成功或者中转成功呢

一般我们服务器中转 tcp 用 haproxy, 也很好测试 , 直接连上看看就知道了 . 但是 UDP 的中转却不够直观好测 . 今天就来分享下 , 如果有朋友有更好的方法 , 也欢迎留言告知 .

测试环境 :

  1. 用户 Windows 使用 nc 命令 (netcat.exe)
  2. 目标服务器 A(188.166.77.78). 装有你懂的业务的服务器
  3. 中转服务器 B(47.75.124.57), 进行端口转发 , 转发流量给 B

首先 , 在中转服务器 B 上设置中转功能

一般中转 UDP 没有什么太好用的工具 , 我一般直接使用 iptables.

首先打开服务器的转发功能

vi /etc/sysctl.conf  设置  net.ipv4.ip_forward = 1

使用 iptables 进行中转

iptables -t nat -A PREROUTING -p udp -i eth0 --dport 9191 -j DNAT --to 47.75.124.57
iptables -t nat -A POSTROUTING -j MASQUERADE
service iptables save
service iptables restart

这里的 eth0 是你当前的公网网卡 ,9191  是你要中转的端口 . 如果是端口段的话 , 可以写成 9191:10000  就代表中转 9191 到 10000 的所有端口 .47.75.124.57  请修改成你要中转的目标服务器 .

第二步 : 打开目标服务器 A 上的 udp 日志

命令是 :tcpdump udp port 9191    哦哦 , 服务器上我已经默认开好了你懂的的工具 , 所以是支持监听 9191 的 udp 的端口哦 .

第三步 : windows

一般测试我们使用 netcat, 就是传说中的 nc 命令 .windows 版的下载地址 :https://github.com/diegocr/netcat/raw/master/nc.exe

使用命令连接中转服务器 B, 看看 udp 的信息是否会在目标服务器 A 上出现 :nc.exe -u   188.166.77.78 9191   (cmd 下先切换到 uc.exe 所在的目录哦 )

然后随便输入几个字符 .

这时 , 你再看目标服务器 A 上的 udp 日志 , 就会看到会有 udp 连接的信息了 . 就说明中转成功拉 . 如果没有日志就说明没成功 …

有疑问欢迎留言 , 尽力解答 .

 

 

赞(0)
未经允许不得转载:91云(91yun.co) » 教程:如何判断UDP是否发送成功或者中转成功呢

留言 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    本机通过B中转的udp到A,A发的数据会原路返回B,然后到本机,还是直接到本机啊?需不需要另外设置

    abcat6年前 (2019-06-29)回复
  2. #0

    pystun 了解下

    Linux6年前 (2018-08-03)回复
    • 回头了解一下

      91yun6年前 (2018-08-03)回复
  3. #0

    大佬最近开始养生不推小鸡了吗?第三步命令错了,nc.exe

    Test IP6年前 (2018-08-03)回复
    • 感谢.已修正.值得搞的小鸡少.线路扯来扯去就那几个,主要找靠谱的服务商.

      91yun6年前 (2018-08-03)回复