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