2

我正在尝试发送 'hello' 顺便说一句 2 个客户端,每个客户端都位于防火墙 NAT 后面,但没有成功。就目前而言,UDP 或 TCP 打孔同样适用。

客户端 A 期望收到“hello p”:

set -- $( wget -qO- http://www.pschmidt.it/screenshooter/ss3.php | awk '{print $1, $2}'); echo $1 $2 $3 $4; `nc -l -v $2 ` & sudo hping3 -2 -c 30 -s $2 -p $4 $3

客户端 B 发送 hello p:

set -- $( wget -qO- http://www.pschmidt.it/screenshooter/ss3.php | awk '{print $1, $2}'); echo $1 $2 $3 $4; sudo hping3 -2 -c 30 -s $2 -p $4 $3; echo "hello p" | nc -p $2 -u $3 $4

不幸的是,什么也没收到。

受http://www.brynosaurus.com/pub/net/p2pnat/启发的实施

4

2 回答 2

1

那么,两个 NAT 是否都受限制锥形 NAT?当之前没有任何东西出现在请求源上时,他们是否拒绝端口访问?

您需要使用正确的地址和端口将数据包从一台主机发送到另一台主机,以便 NAT 接受传入请求,即使它们是请求而不是响应。

举个例子:

PC1 - NAT1 - 网络 - NAT2 - PC2

PC1 想通过端口 10 访问 PC2。

PC2 使用源端口 10(被 NAT1 阻止)向 PC1 发送请求。PC1 向 PC2 的 10 端口发送请求,该端口不会被阻塞,会得到响应。

于 2010-12-10T02:09:22.310 回答
1

您需要调查您正在处理的 NAT 类型。“对称”术语已过时。您可以从 scribd 在线阅读 Practical JXTA II 书中的相应章节。

如果您的同行都没有公共地址,您在问题中描述的技术将永远不会起作用。解决这个问题更加复杂,而且并不总是可能的。

于 2011-08-19T02:45:59.933 回答