![启用 DHCP 的永久传出 IP 地址](https://linux22.com/image/139892/%E5%90%AF%E7%94%A8%20DHCP%20%E7%9A%84%E6%B0%B8%E4%B9%85%E4%BC%A0%E5%87%BA%20IP%20%E5%9C%B0%E5%9D%80%20.png)
我在使我的传出 IP 地址配置永久化时遇到一些问题。我用谷歌搜索了很多,但没有找到适合我的配置。
假设我的网络是 192.168.1.0/24,默认网关是 192.168.1.1。这是我的带有 NAT 和公共 IP 地址 1.2.3.1 的路由器。托管提供商将另一个 IP 地址 1.2.3.4 路由到此 IP 地址,该地址进一步路由到我的服务器,其私有 IP 地址 192.168.1.17 由 DHCP 静态分配。默认网关也通过 DHCP 服务器发布。在我的例子中,IP 地址 1.2.3.4 被视为服务器公共 IP 地址,服务器传出通信必须从该 IP 地址开始。
因此,如果我这样做:ip route add default via 192.168.1.1 src 1.2.3.4
我可以访问互联网,并且如果我执行curl ipinfo.io,我的公共IP地址是1.2.3.4。
因此,为了使此更改永久生效,我添加了:
[robi@centos7-1 ~]$ cat /etc/sysconfig/network-scripts/route-ens160
default via 192.168.1.1 src 1.2.3.4
和
[robi@centos7-1 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=no
noIPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME=ens160
UUID=755cd596-ce8c-4798-8816-4e19b255ae38
DEVICE=ens160
ONBOOT=yes
IPADDR=1.2.3.4
PREFIX=32
所以现在我不确定我是否做错了什么,或者不可能以这种方式使此配置永久存在。
重启后IP路由:
[robi@centos7-1 ~]$ ip route
1.2.3.4 dev ens160 proto kernel scope link src 1.2.3.4 metric 100
192.168.1.0/24 dev ens160 proto kernel scope link src 192.168.1.17 metric 100
ip Route add default via 192.168.1.1 src 1.2.3.4 之后的 IP 路由:
[robi@centos7-1 ~]$ ip route
default via 192.168.1.1 dev ens160 src 1.2.3.4
1.2.3.4 dev ens160 proto kernel scope link src 1.2.3.4 metric 100
192.168.1.0/24 dev ens160 proto kernel scope link src 192.168.1.17 metric 100
如果我设置DEFROUTE=yes
并重新启动网络,我可以通过 192.168.1.17 访问互联网。本地 IP 地址 ipifno.io 告诉我 IP 地址 1.2.3.1(通过我的路由器进行 NAT 的 IP 地址),但我不想要这个。
那么,有没有一种解决方案可以使用 DHCP 服务器的本地 IP 地址进行设置?另外,是否可以通过 DHCP 服务器返回的本地网关以某种简单的方式路由此传出 IP 地址?
另外,是否可以通过 DHCP 选项 33 设置第二个 IP 地址(在我的例子中为 1.2.3.4)?
答案1
外部每个人的传出 IP 地址已经是 1.2.3.4 或 185.148.73.201,无需任何其他配置。
命令
ip route add default via 192.168.1.1 src 1.2.3.4
应该已经给你错误信息了
Error: Invalid prefsrc address.
您无需执行任何操作,也无法强制使用与路由器的公共地址不同的地址。