接口上的多个IP地址。 我想指定其中的一个输出

我跑curlmyip.com curl,并得到了错误的输出IP地址。 我的systemd服务文件是:

[Unit] Description=Wired Networking Wants=network.target dibbler-client.service Before=network.target dibbler-client.service [Service] Type=oneshot RemainAfterExit=yes EnvironmentFile=/etc/conf.d/network ExecStart=/sbin/ip link set dev ${interface} up ExecStart=/sbin/ip addr add ${address}/24 dev ${interface} ExecStart=/sbin/ip addr add ${failover}/32 dev ${interface} ExecStart=/sbin/ip route add default via ${gateway} src ${failover} ExecStart=/sbin/ip -6 addr add ${addressv6}/64 dev ${interface} ExecStop=/sbin/ip addr flush dev ${interface} ExecStop=/sbin/ip -6 addr flush dev ${interface} ExecStop=/sbin/ip link set dev ${interface} down [Install] WantedBy=multi-user.target 

variables是:

 interface=eno1 address=88.190.15.135 address6=2001:bc8:300a:dead::b12d failover=212.83.129.104 broadcast=88.190.15.255 gateway=88.190.15.1 

现在,ip addr给我:

 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether b8:ac:6f:94:e2:4e brd ff:ff:ff:ff:ff:ff inet 88.190.15.135/24 scope global eno1 valid_lft forever preferred_lft forever inet 212.83.129.104/32 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::baac:6fff:fe94:e24e/64 scope link valid_lft forever preferred_lft forever 

和ip路由

 default via 88.190.15.1 dev eno1 src 212.83.129.104 88.190.15.0/24 dev eno1 proto kernel scope link src 88.190.15.135 

curlmyip.com告诉我,输出IP地址是88.190.15.135。 我怎样才能改变这个输出地址,并使其212.83.129.104?

编辑:testing更改路由的网关到网关…没有变化。

谢谢!

  • networking幻数的正式定义是什么?
  • 什么是不属于域的用户名的正确格式
  • 是否可以在同一台机器上在不同IP的同一端口上运行两个服务?
  • 间歇性DNSparsing问题
  • 启用IOAT但不能用于Linux?
  • 在Windows未启动时挂载networking驱动器
  • 3 Solutions collect form web for “接口上的多个IP地址。 我想指定其中的一个输出”

    看来你的提供商正在玩一些肮脏的IP路由技巧。 您使用的第二个IP地址位于完全不同的networking上。 您的dedibox在AS12322上,而您的其他IP地址则在AS12876上注册给Tiscali。 这似乎工作,因为涉及的服务提供商正在使其工作。

    无论如何,大多数可以进行networking连接的程序都有一个选项,可让您指定源IP地址。 对于curl命令行,该选项是--interface

     curl --interface 212.83.129.104 http://curlmyip.com/ 

    从你发布的configuration看起来,你指定212.83.128.104作为你的默认路由的来源:

     default via 88.190.15.1 dev eno1 src 212.83.129.104 

    你可能应该改变它,或者删除它。

    编辑:显然我误解了这个问题,并认为212.83.128.104被用作源IP。 如果我正确地重新读取它,则88.190.15.135实际上被用作源IP,并且期望的行为是使用212.83.129.104来代替。 要诊断,我们需要更多的信息,但我的猜测是,你受到这个bug的影响: https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1093999其中IP路由… src在内核中被破坏。

    正如我的专职供应商告诉我的, https://twitter.com/online_fr/status/384662183751450624

    我加了这个: -t nat -A POSTROUTING -o eno1 \! -d 10.8.0.0/24 -j SNAT --to-source 212.83.129.104 -t nat -A POSTROUTING -o eno1 \! -d 10.8.0.0/24 -j SNAT --to-source 212.83.129.104 ,一切都很好:)

    如果您由Online.net托pipe,则是唯一的方法。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.