用 ifconfig 命令设置 IP 后 ping 不通局域网内其他主机

61 天前
 sbldehanhan

局域网所有主机都连到同一个路由器,开始都是通过 dhcp 自动分配的 IP 。通过 ifconfig 给一台 Ubuntu 设置自己写的跟原来同一网段的 IP 后,这台主机就 ping 不同其他任何主机了。不通过 ifconfig ,而是通过 UI 界面设置后就可以。咋回事呢?

1181 次点击
所在节点    Ubuntu
16 条回复
winterx
61 天前
1 、ifconfig 配置错误
2 、IP 重复
jasonyang9
61 天前
ifconfig 命令贴出来,话说现在都是 iproute2 了应该用 ip addr

ip a
ip r
ip rule
这几个的结果贴出来
sbldehanhan
61 天前
@jasonyang9 #2
```
sudo ifconfig wlx08beac2cae9e 192.168.3.90/24
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:dc:da:bd brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 172.16.74.183/24 brd 172.16.74.255 scope global dynamic noprefixroute ens33
valid_lft 85449sec preferred_lft 85449sec
inet6 fe80::ccba:fdb7:7553:b7f8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:b9:76:47:4c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
4: wlx08beac2cae9e: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:be:ac:2c:ae:9e brd ff:ff:ff:ff:ff:ff
inet 192.168.3.90/24 brd 192.168.3.255 scope global noprefixroute wlx08beac2cae9e
valid_lft forever preferred_lft forever
inet6 fe80::7dcb:b1d5:b824:c79e/64 scope link noprefixroute
valid_lft forever preferred_lft forever

~ ip r
default via 172.16.74.1 dev ens33 proto dhcp metric 100
169.254.0.0/16 dev ens33 scope link metric 1000
172.16.74.0/24 dev ens33 proto kernel scope link src 172.16.74.183 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown

~ ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
```
churchmice
61 天前
你看看,ip route 里面压根就没有你这路由
sbldehanhan
61 天前
@churchmice #4 所以,用 ifconfig 每次都需要手动添加路由吗?正确的做法是什么呢?之前配完 IP 用 sudo route add default gw 192.168.3.1 配网关的时候报网络不可达。
wheat0r
61 天前
@sbldehanhan #5 原则上你的需求只需要直连路由,而直连路由不需要配置。
但是你的路由表里连直连路由都没有。
cdlnls
61 天前
现在 2024 年了,除非非常老的发行版,可能会用到 ifconfig 。
除此以外都应该用系统推荐的方式来配置 IP 。比如 ip \ nmcli \ netplan 这些工具来配置。
leonshaw
61 天前
noprefixroute
NessajCN
61 天前
sudo ip route add default via 192.168.3.1
vituralfuture
61 天前
network manager 专门做这事的,不要自己用 ip 命令或者 ifconfig 命令配置
sbldehanhan
61 天前
@wheat0r #6 是。但是我想知道为什么会出现这种情况。
sbldehanhan
61 天前
@NessajCN #9 我用 ifconfig 配完 ip ,用这个命令添加网关,说是这个 3.1 不可达。
sbldehanhan
61 天前
@cdlnls #7 嗯,的确用 ip addr add 是没有问题的。之前一直用 ifconfig ,习惯了,看来得换换了。
guanzhangzhang
61 天前
ip addr add xxx/xx dev xxx
ip route add xxx dev xxx
leonshaw
61 天前
其它网络工具通过 rtnl 添加了带 noprefixroute 标志的地址,并(可能)加了直连路由。ifconfig 通过老的 ioctl 接口改地址,没有这个字段,所以保留了原来的标志,改地址过程中先删除原地址,直连路由(如果之前有)随之撤销。
换 iproute2 ,或者用 ifconfig 先删再加。
pheyx
61 天前
是无线网卡吧。先连到无线路由再用 ip address 或 ifconfig

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1021734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX