好吧,我有几个问题,我家里有一个 D - link 2650u 路由器,让我们从这个开始
现在我用Python编写了一个TCP服务器,它将自身绑定(bind)到我的私有(private)IP地址和端口5000,(我的私有(private)IP地址是10.0.0.4),例如,假设我的公共(public) IP 地址是 76.123.24.21。现在,我的 TCP 服务器在 LAN 和私有(private) IP 地址内工作正常,但是如果我希望其他人能够向我和我的服务器发送数据包以从 LAN 外部接收它们,我需要打开端口 5000 并转发它,例如,输入我的路由器的 NAT 端口转发表并定义端口 5000 上收到的所有数据包都将转发到我的私有(private) IP 地址,即 10.0.0.4。 所以我的第一个问题是,如果我将端口 5000 转发到 10.0.04,这意味着发送到 76.123.24.21:5000 的每个数据包都会在绑定(bind)在端口 5000 上的 TCP 服务器中收到,对吗? (当然如果数据包是从 TCP 套接字发送的)
现在我的第二个问题是,如何在路由器上转发端口.....我有一个 D - link DSL 2650u 路由器,每当我登录到它的网页并连接到正确的用户名和密码,它向我显示的所有选项是:
设备信息
诊断
管理
没有任何关于高级设置或 NAT 转发端口的信息......
请帮我解决这个问题!
最佳答案
是的。你是对的。每个 TCP 目标端口等于 5000 的数据包将被转发到 10.0.0.4 。内部端口号和外部端口号可以相同或不同,路由器不在乎。
端口转发在 D-Link 文献中被称为“虚拟服务器”。您可以在“NAT - 虚拟服务器”中的“高级设置”下配置端口转发。
DMZ 中的任何客户端 PC 都将面临各种类型的安全风险。因此,如果您的应用程序仅使用端口,则仅使用端口转发。
关于networking - 端口转发和 Python 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486538/