局域网所有主机都连到同一个路由器,开始都是通过 dhcp 自动分配的 IP 。通过 ifconfig 给一台 Ubuntu 设置自己写的跟原来同一网段的 IP 后,这台主机就 ping 不同其他任何主机了。不通过 ifconfig ,而是通过 UI 界面设置后就可以。咋回事呢?
局域网所有主机都连到同一个路由器,开始都是通过 dhcp 自动分配的 IP 。通过 ifconfig 给一台 Ubuntu 设置自己写的跟原来同一网段的 IP 后,这台主机就 ping 不同其他任何主机了。不通过 ifconfig ,而是通过 UI 界面设置后就可以。咋回事呢?
|
winterxMar 8, 2024
1
1 、ifconfig 配置错误
2 、IP 重复 |
|
jasonyang9Mar 8, 2024 via Android
2
ifconfig 命令贴出来,话说现在都是 iproute2 了应该用 ip addr
ip a ip r ip rule 这几个的结果贴出来 |
|
3
@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 ``` |
|
churchmiceMar 8, 2024
4
你看看,ip route 里面压根就没有你这路由
|
|
5
@churchmice #4 所以,用 ifconfig 每次都需要手动添加路由吗?正确的做法是什么呢?之前配完 IP 用 sudo route add default gw 192.168.3.1 配网关的时候报网络不可达。
|
|
wheat0rMar 8, 2024
6
@sbldehanhan #5 原则上你的需求只需要直连路由,而直连路由不需要配置。
但是你的路由表里连直连路由都没有。 |
|
cctv6Mar 8, 2024
7
现在 2024 年了,除非非常老的发行版,可能会用到 ifconfig 。
除此以外都应该用系统推荐的方式来配置 IP 。比如 ip \ nmcli \ netplan 这些工具来配置。 |
|
leonshawMar 8, 2024
8
noprefixroute
|
|
NessajCNMar 8, 2024
9
sudo ip route add default via 192.168.3.1
|
|
vituralfutureMar 8, 2024 via Android
10
network manager 专门做这事的,不要自己用 ip 命令或者 ifconfig 命令配置
|
|
11
@wheat0r #6 是。但是我想知道为什么会出现这种情况。
|
|
12
@NessajCN #9 我用 ifconfig 配完 ip ,用这个命令添加网关,说是这个 3.1 不可达。
|
|
13
@cdlnls #7 嗯,的确用 ip addr add 是没有问题的。之前一直用 ifconfig ,习惯了,看来得换换了。
|
|
guanzhangzhangMar 8, 2024
14
ip addr add xxx/xx dev xxx
ip route add xxx dev xxx |
|
leonshawMar 8, 2024
15
其它网络工具通过 rtnl 添加了带 noprefixroute 标志的地址,并(可能)加了直连路由。ifconfig 通过老的 ioctl 接口改地址,没有这个字段,所以保留了原来的标志,改地址过程中先删除原地址,直连路由(如果之前有)随之撤销。
换 iproute2 ,或者用 ifconfig 先删再加。 |
|
pheyxMar 8, 2024
16
是无线网卡吧。先连到无线路由再用 ip address 或 ifconfig
|