在终端更改 IP 地址

xtr*_*ade 2 ifconfig

我正在尝试使用终端命令更改我的 IP 地址。

当我使用时,ifconfig 10.10.10.134 netmask 255.255.255.0我可以更改 IP 地址并且仍然可以连接到我的网络(我可以 ping 其他设备),但是我无法再连接到 Internet。还有什么我应该做的,或者我应该使用不同的命令吗?

rda*_*rda 5

正如@Henrik 所述,您可以使用ifconfig,但如果您的系统上可用,则应使用包中的较新ip命令iproute2(它具有相同的效果)。

ip addr add 10.10.10.134/24 dev <interface>
Run Code Online (Sandbox Code Playgroud)

while<interface>是需要添加IP的接口

为了能够访问互联网,您的路由必须正确设置,通常这些路由由dhcp-client处理。如果您有静态 IP,则必须手动设置默认网关

您可以使用以下方法检查路由表:

ip route show
Run Code Online (Sandbox Code Playgroud)

这将打印出路由表,应该是这样的:

default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15
10.1.1.0/24 dev eth1  proto kernel  scope link  src 10.1.1.2
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,使用default-gateway条目访问互联网:

default via 10.0.2.2 dev eth0
Run Code Online (Sandbox Code Playgroud)

whiledefault代表0.0.0.0/0匹配任何 IP 地址。10.0.2.2如果目标 IP 地址与任何更具体的路由不匹配,如上例所示,这将导致所有流量路由到具有 IP 的路由器。

要添加default-gateway输入:

ip route add default via <router-IP> dev <interface>
Run Code Online (Sandbox Code Playgroud)

尽管

  • <router-IP> 是网络中下一个网关的 IP 地址
  • <interface> 是您连接到网络的接口

现在要使用DNS系统,您可能还需要nameservers手动添加。

在 linux 中指定的那些/etc/resolv.conf,手动编辑文件并添加您的名称服务器,如下面的谷歌名称服务器示例所示:

nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

或者简单地输入:

echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)