这是我的服务器网络设置:
/etc/网络/接口
auto ethLAN
iface ethLAN inet static
address 192.168.10.3
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
auto ethOI
iface ethOI inet static
address 10.1.1.3
netmask 255.255.255.0
network 10.1.1.0
broadcast 10.1.1.255
gateway 10.1.1.1
dns-nameservers 192.168.10.1 8.8.8.8 8.8.4.4
dns-search hsi.local
auto ethGTC
iface ethGTC inet static
address x.y.z.82
netmask 255.255.255.192
network x.y.z.64
broadcast x.y.z.127
gateway x.y.z.65
这是我的路线表:
0.0.0.0 10.1.1.1 0.0.0.0 UG 0 0 0 ethOI
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ethOI
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 ethLAN
x.y.z.64 0.0.0.0 255.255.255.192 U 0 0 0 ethGTC
ethOI 为 LAN 客户端提供互联网连接,ethGTC 用于外部 VPN、WEB 和其他服务。
我正在使用 iptables 来伪装和防火墙(此处为快照)。
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ethOI -j MASQUERADE
iptables -A INPUT -i ethLAN -j ACCEPT
iptables -A INPUT -i ethGTC -p tcp --dport 80 -j ACCEPT
... other rules
通过此设置,局域网客户端可以通过 ethOI 接口访问互联网,但服务不起作用。
但是,如果我将默认路由更改为 ethGTC,则一切正常,只是客户端由此接口而不是 ethOI 进行路由。
如何配置这个场景?
答案1
解决这个问题的方法是添加一个自定义路线,例如:
up ip route add 10.1.1.0/24 dev ethOI src 10.1.1.3 table adsl1
up ip route add default via 10.1.1.1 table adsl1
up ip route add x.y.z.64/26 dev ethGTC src x.y.z.82 table adsl2
up ip route add default via x.y.z.65 table adsl2
up ip route add 10.1.1.0/24 dev ethOI src 10.1.1.3
up ip route add x.y.z.64/26 dev ethGTC src x.y.z.82
up ip rule add from 10.1.1.3 table adsl1
up ip rule add from x.y.z.82 table adsl2
答案2
请尝试:针对“GTC”网络中除 xyz82 之外的所有机器,添加路由条目:route add -net 192.168.10.0/24 gw xyz82