为什么不同的用户通过相同的接口获得不同的IP


3

在同一台服务器上,在root上,我得到了正确的界面互联网IP

root@server:~# curl -s --interface ppp0 ipcheck.com
111.111.111.111root@server:~# 

然而...

如果它不是超级用户,我得到默认路由/接口eth0或eth1 internet ip的ip而不是ppp0的internet ip,这不是我所期望的。

matrix@server:~$ curl -s --interface ppp0 ipcheck.com
222.222.222.222matrix@server:~$ 

我的问题是为什么不同的用户获得不同的IP /路由?它是相同的应用程序,我已正确设置路由的相同界面...

在/ etc / iproute2 / rt_tables中,我添加了

    20      isp1
    30      isp2
    40      ppp0
    50      ppp1
    60      ppp2

ip route的前3行:

    default 
        nexthop via 222.222.222.1  dev eth0 weight 1
        nexthop via 222.222.222.2  dev eth1 weight 1
10.200.20.1 dev ppp0  proto kernel  scope link  src 10.200.21.4
10.200.20.1 dev ppp1  proto kernel  scope link  src 10.200.21.9 
10.200.20.1 dev ppp2  proto kernel  scope link  src 10.200.21.7 

ip规则:

0:  from all lookup local 
32761:  from all fwmark 0x60 lookup ppp2 
32762:  from all fwmark 0x50 lookup ppp1
32763:  from all fwmark 0x40 lookup ppp0 
32764:  from all fwmark 0x30 lookup ISP2 
32765:  from all fwmark 0x20 lookup ISP1 
32766:  from all lookup main 
32767:  from all lookup default 

iptables的:

    -A PREROUTING -t mangle -i eth0 -m state --state NEW,RELATED,ESTABLISHED -d 222.222.222.222 -j CONNMARK --set-mark 0x20
    -A PREROUTING -t mangle -i eth1 -m state --state NEW,RELATED,ESTABLISHED -d 222.222.222.223 -j CONNMARK --set-mark 0x30
    -A PREROUTING -t mangle -i br0 -m connmark --mark 0x20 -j CONNMARK --restore-mark
    -A PREROUTING -t mangle -i br0 -m connmark --mark 0x30 -j CONNMARK --restore-mark
    -A OUTPUT -t mangle -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark
-A PREROUTING -t mangle -i ppp0 -m state --state NEW,RELATED,ESTABLISHED -d 10.200.21.4 -j CONNMARK --set-mark 0x40
-A PREROUTING -t mangle -i br0 -m connmark --mark 0x40 -j CONNMARK --restore-mark
-A PREROUTING -t mangle -i ppp1 -m state --state NEW,RELATED,ESTABLISHED -d 10.200.21.9 -j CONNMARK --set-mark 0x50
-A PREROUTING -t mangle -i br0 -m connmark --mark 0x50 -j CONNMARK --restore-mark
-A PREROUTING -t mangle -i ppp2 -m state --state NEW,RELATED,ESTABLISHED -d 10.200.21.7 -j CONNMARK --set-mark 0x60
-A PREROUTING -t mangle -i br0 -m connmark --mark 0x60 -j CONNMARK --restore-mark

-A OUTPUT -t mangle -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark


    -A POSTROUTING -t nat -o eth0 -j MASQUERADE
    -A POSTROUTING -t nat -o eth1 -j MASQUERADE
    -A POSTROUTING -t nat -o ppp+ -j MASQUERADE

    -A FORWARD -i br0 -o eth0 -j ACCEPT
    -A FORWARD -i br0 -o eth1 -j ACCEPT
    -A FORWARD -i br0 -o ppp+ -j ACCEPT
    -A FORWARD -m state -i eth0 -o br0 --state ESTABLISHED,RELATED -j ACCEPT
    -A FORWARD -m state -i eth1 -o br0 --state ESTABLISHED,RELATED -j ACCEPT
    -A FORWARD -m state -i ppp+ -o br0 --state ESTABLISHED,RELATED -j ACCEPT
    -A FORWARD -i br0 -o br0 -j ACCEPT

如果你可以告诉我们一些关于返回的IP地址的信息会有所帮助,但是(没有足够的答案)我的第一个猜测是绑定到特定接口需要普通用户帐户没有的访问级别,但是确实有。
2015年

我有点惊讶:我没有连接的ppp服务器,但是使用OpenVPN,使用虚拟接口tun0播放相同的游戏,返回的IP地址是相同的。
MariusMatutiae 2015年

我找不到任何关于它的文档,但是作为用户,你无法设置界面。
davidbaumann 2015年

请提供ip routeiptables-save
丹尼尔B

如果输出错误,请告诉我们哪一个以及为什么。如果输出都不对,请告诉我们实际问题是什么。
大卫施瓦茨2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.