我有两个网络接口,eth0是连接带有softphone和eth1链接到互联网所需的内部网络。我在CentOS 6.5上使用iptables将Freepbx(Asterisk)的所有输出都指向eth1,但我没有成功。
规则
iptables -A PREROUTING -i eth1 -t mangle -p tcp --dport 5060 -j MARK --set-mark 1
答案 0 :(得分:1)
点击 sip.conf 。在 [general] 部分中,有一个 bindaddress 或 udpbindaddress 。将其设置为 0.0.0.0 以确保星号侦听所有接口。您可以通过以下方式查看:
netstat -lnap | grep 5060
udp 0 0 0.0.0.0:5060 0.0.0.0:* 30822/asterisk
然后使用iptables限制对不必要接口的访问,例如(注意顺序):
iptables -A INPUT -i eth1 -p udp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j DROP
iptables -A OUTPUT -o eth1 -p udp --sport 5060 -j ACCEPT
iptables -A OUTPUT -p udp --sport 5060 -j DROP
答案 1 :(得分:0)
如果在同一台服务器上使用公共IP,则需要使用INPUT表和ACCEPT目的地。
如果是在其他主机上,则使用DNAT。