我已经构建了一个基于Ubuntu 桌面 18.04.1(内核:4.15.0-32-generic x86_64)。
我遵循了本指南https://killtacknine.com/building-an-ubuntu-16-04-router-part-1-network-interfaces/。
可是当我真正尝试之后,却发现不对劲。
网络不正常。
我的 ISP 是中国电信,我的下行带宽为 200 Mbps,上行带宽为 20 Mbps。
我在 speedtest.net 上测试了 Ubuntu 的带宽。它达到了我的带宽。
但如果我在连接 Ubuntu 的 Windows 主机上测试它。它只达到 10Mbps / 20 Mbps(是的,上传速度比下载速度快)。(他们在同一个节点上测试)
我已经安装了 Realtek 的最新以太网驱动程序。
但是如果我在 Windows 主机上使用 Chrome 从最近的大学的镜像下载 iso 文件,下载速度会非常快。
我已经尝试通过我的真实路由器进行 pppoe,它也可以给我提供不错的速度。
文件/etc/network/interfaces
:
auto lo
iface lo inet loopback
auto enp3s0
iface enp3s0 inet manual
auto br0
iface br0 inet static
address 10.0.0.1
network 10.0.0.0
netmask 255.0.0.0
broadcast 10.0.0.255
bridge_ports enp1s0 enp2s0 enp4s0
bridge_stp on
命令ifconfig
:
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 255.0.0.0 broadcast 10.0.0.255
inet6 fe80::2e0:4cff:fe68:141 prefixlen 64 scopeid 0x20<link>
ether 00:e0:4c:68:01:41 txqueuelen 1000 (以太网)
RX packets 82694 bytes 141679903 (141.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 96992 bytes 63026899 (63.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:e0:4c:68:01:41 txqueuelen 1000 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:e0:4c:68:01:42 txqueuelen 1000 (以太网)
RX packets 0 bytes 0 (0.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:e0:4c:68:01:43 txqueuelen 1000 (以太网)
RX packets 132766 bytes 64971378 (64.9 MB)
RX errors 0 dropped 376 overruns 0 frame 0
TX packets 144862 bytes 147788638 (147.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:e0:4c:68:01:44 txqueuelen 1000 (以太网)
RX packets 80626 bytes 85799840 (85.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 45697 bytes 30678421 (30.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 56 bytes 5804 (5.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56 bytes 5804 (5.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1492
inet 125.xxx.xxx.61 netmask 255.255.255.255 destination 125.xxx.xxx.1
ppp txqueuelen 3 (点对点协议)
RX packets 132010 bytes 61697165 (61.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 143928 bytes 144553030 (144.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
上面enp3s0
是支持(pppoe)的WAN口ppp0
。
enp1s0
、、为LAN端口,enp2s0
为桥接端口。enp4s0
br0
您可能会注意到enp3s0
RX 丢弃了一些包裹,但我不知道这是怎么发生的。
文件/etc/sysctl.conf
:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.ip_forward=1
net.core.netdev_budget=1000
net.core.netdev_max_backlog=1000
Netdata 向我发出了警报number of times, during the last 10min, ksoftirq ran out of sysctl net.core.netdev_budget or time slice, with work remaining (this can be a cause for dropped packets)
,所以我增加了net.core.netdev_budget
和net.core.netdev_max_backlog
。但是没用。
谁能告诉我怎么解决这个问题?我只想获得正常的网络速度。
感谢所有提前回答或注意到这个问题的人。
添加:
当我通过 Speedtest 进行测试时:
一些系统信息。
答案1
我解决了。
这是network-manager
我用来初始化 pppoe 连接的。
我不知道为什么network-manager
会这样。但问题就是他造成的。
解决方式:
# delete my older pppoe(dsl) connection
nm-connection-editor
# configure new connection by pppoeconf
pppoeconf
# disable network-manager due to it is not useful to me
systemctl disable network-manager
systemctl start network-manager