标题几乎总结了它。我想通过 SSH 隧道发送 UDP 流量。具体来说,我需要能够通过隧道发送 UDP 数据包,并让服务器能够在另一端将它们发送回给我。我知道如何为 TCP 连接做到这一点。这可以用UDP吗?
这是一直让我困惑的事情。为什么在您的计算机上打开端口是不好的?假设您的计算机上没有病毒,也没有其他侦听端口的程序可能会实际执行某些操作,为什么端口打开很重要?如果某个恶意的人开始向端口发送数据包,但没有任何东西可以接收数据并对其进行处理,为什么这很重要?计算机不只是任意执行它接收到的任何数据。我知道用数据包淹没计算机可能会导致它崩溃,因为它无法处理大量数据,但我只考虑实际更改计算机上文件的安全问题。
更新
感谢您到目前为止的答复。我现在明白了,一个端口被打开实际上意味着有一个程序可以被利用来监听那个端口。但是为什么编写不能被利用的软件就这么难呢?要对计算机造成任何真正的伤害,程序不必允许上传一个或多个文件,然后需要执行其中一个文件。似乎很难允许意外发生。
我想生成UDP包来测试一个程序,相当于用telnet来测试TCP端口(Can telnet generate UDP packet?)
我怎样才能做到这一点?
ping包是一种ICMP包。ICMP 和 TCP 之间有什么关系吗?换句话说,我们能保证他们到达网络吗?我想知道网络中的ICMP数据包是TCP、UDP还是两者都不是?
请进行健康检查。
如果我将 UDP 数据包从 NAT 后面的机器 A 发送到机器 B 的端口 N,其中机器 B 在 NAT 之外(互联网上的其他地方),我是否可以合理地期望 NAT 将从端口 N 上的机器 B 接收的 UDP 数据包传递回机器 A 上的端口 N,不需要在 NAT 上手动端口转发?
我想在我的周末小屋中部署一个 Raspberry Pi。Raspberry Pi 用于记录温度并将它们发送到具有固定 IP 的远程服务器,保存数据并将其显示在一个简单的网站上。
但是,可能会出现我想在 Raspberry Pi 上更改某些内容的情况。例如系统更新或将数据发送到服务器或其他任何程序的更改。
使用建议的设置,我将无法从 LAN 外部连接到 Raspberry Pi。
注意:我不想改变网络,现有的路由器不具备端口转发、dynDNS 或 VPN 的能力。
我最近阅读了 UDP 打孔。基本思想是,客户端将 UDP 包发送到已知服务器地址(即启用公共 IP 或 dynDNS)。想要连接到客户端 A 的客户端 B 向服务器询问客户端 A 的公共 IP 和端口号。
然后它可以直接连接到客户端 A 的公共 IP 和动态端口。因为客户端 A 首先通过现在使用的端口连接到服务器,所以 NAT 会将包转发到客户端 A。
我希望我或多或少地正确总结了这个想法……
这一切听起来不错,但问题是,这不能与 TCP 连接一起工作,因为路由器能够“理解”TCP 连接的握手,如果它没有正确建立,它就不会转发包。
那么,如何才能打开从客户端 B 到客户端 A 的 SSH 会话,而客户端 A 不会坐在带有 dynDNS、固定公共 IP 或端口转发功能的路由器后面?使用具有公共、固定 IP 或域名的中央服务器可能会很困难。
我看到许多 WOL 实例使用端口 7,许多实例使用端口 9,这有关系吗?它不只是在第 2 层或以太网上寻找 WOL 数据包吗?
我想这很接近linux - Netcat 停止监听 UDP 流量 - 超级用户,但我想我最好还是问一下
至于netcat 的版本,我使用的是 Ubuntu 11.04 和netcat它的默认版本,我猜是这样的openbsd:
$ nc
This is nc from the netcat-openbsd package. An alternative nc is available
in the netcat-traditional package.
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
[-x proxy_address[:port]] [hostname] [port[s]]
Run Code Online (Sandbox Code Playgroud)
这就是我觉得奇怪的地方:第一种情况按预期工作 - 我在一个终端中打开了一个 UDP 服务器:
$ sudo nc -ul 5000
Run Code Online (Sandbox Code Playgroud)
...在另一个终端中,我启动了一个新的 UDP 客户端连接 - 我输入了hello3 次,每次都按 …
我在两个虚拟机上使用 Iperf,当使用 TCP 时,我发现性能如下:
notroot@ubuntu:~$ iperf -s
------------------------------------------------------------
服务器监听 TCP 端口 5001 TCP 窗口大小:85.3 KB (默认)
------------------------------------------------------------
[4] 本地 192.168.1.29 端口 5001 连接 192.168.1.13 端口 52478
[ID] 间隔传输带宽
[4] -10.0 秒 2.22 GBytes 1.90 Gbits/秒
另一方面,UDP 很糟糕:
notroot@ubuntu:~$ iperf -s -u
------------------------------------------------------------
服务器侦听 UDP 端口 5001
接收 1470 字节数据报
UDP 缓冲区大小:208 KB(默认)
------------------------------------------------------------
[3] 本地 192.168.1.29 端口 5001 与 192.168.1.15 端口
[ ID33777777777传输带宽抖动丢失/总数据报
[3] 0.0-10.0 秒 1.25 MBytes 1.05 Mbits/sec 0.284 ms 0/ 893 (0%)
我正在阅读这篇文章
问题: