我有一个linux机器,它有两个以太网端口,eth0和eth1。一个端口连接到可以通过以太网控制的硬件设备填充的网络。这是我的“指挥网络”。另一个端口连接到一个网络,通过linux机器的apache服务器上的一个web应用程序向上述设备发送某些命令。这个网络就是“控制网络”。
我想要做的是允许任意一个网络的IP地址在命令中被更改,而不管哪个网络被插入到哪个端口。
用户可以在web应用程序中输入命令网络或控制网络的新IP地址,然后单击submit,这将向服务器发出AJAX请求。然后,服务器将确定请求来自eth0还是eth1,然后根据命令或控制网络是否被更改,更改该端口的IP地址或其他端口的IP地址。
是否有任何方法可以确定请求来自哪个以太网端口?
发布于 2014-03-17 17:10:27
是否有任何方法可以确定请求来自哪个以太网端口?
不容易。
但是,您可以做的是在一个接口上为NAT端口80设置一些iptables规则,比如127.0.0.1:8000和127.0.0.1:8001的另一个接口。
例如:
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8001然后,您可以在两个端口(8000和8001)上侦听,并通过python实例(取决于您的python框架)或目标端口来区分它们。
https://stackoverflow.com/questions/22460444
复制相似问题