在办公室里,我们有用于互联网接入的wlan和用于访问intranet的以太网电缆。我想配置我的笔记本电脑,以便我可以同时使用这两个,但到目前为止,我还不能做到这一点。我找到了这的答案,但我没有足够的网络知识来应用于我的情况。
如果我连接到这两个网络,我可以访问internet,但不需要显式指定接口就不能访问intranet。
不管用:
ping 10.158.51.11作品:
ping -I enp0s20u2 10.158.51.11我目前的配置:
~ ip addr
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: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether c4:85:08:41:a2:6c brd ff:ff:ff:ff:ff:ff
inet 10.161.253.58/21 brd 10.161.255.255 scope global dynamic noprefixroute wlp2s0
valid_lft 12964sec preferred_lft 12964sec
inet6 fe80::ad6b:7406:af47:5b33/64 scope link noprefixroute
valid_lft forever preferred_lft forever
7: enp0s20u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:eb:e8:0a:1a:8c brd ff:ff:ff:ff:ff:ff
inet 10.144.96.246/22 brd 10.144.99.255 scope global dynamic noprefixroute enp0s20u2
valid_lft 84916sec preferred_lft 84916sec
inet6 fe80::6d66:6e10:cf2:abce/64 scope link noprefixroute
valid_lft forever preferred_lft forever
~ ip route
default via 10.161.248.1 dev wlp2s0 proto dhcp metric 600
default via 10.144.96.1 dev enp0s20u2 proto dhcp metric 20100
10.144.96.0/22 dev enp0s20u2 proto kernel scope link src 10.144.96.246 metric 100
10.161.248.0/21 dev wlp2s0 proto kernel scope link src 10.161.253.58 metric 600作为一个被接受的答案的补充,我最终写了一个小的DNS代理来使一切正常工作。因此,这是一个完整的解决方案:
接口:
步骤:
sudo ip route del default via 10.144.96.1sudo ip route add 10.0.0.0/8 via 10.144.96.1 dev enp0s20f0u1添加路由sudo dnsrp -c conf.toml启动dnsrp发布于 2017-12-14 10:06:00
首先,路由表的一般思想是指定如何到达所有可能的主机和网络。路由表自动排列,以便最具体的条目优先,与数据包的目的地地址匹配的第一个条目将用于该数据包。最不具体的路由总是默认的网关:它是一种“对于其他我没有指定的东西,发送到那里”。
在您的情况下,您需要知道在您的intranet中使用的是哪些网段,并指定一个或多个路由条目,将发送到这些网段的任何流量发送到intranet端网关。
例如,我可能猜到您的所有intranet段可能都在10.*地址范围内。在这种情况下,我会指定这样的路线:
sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.144.96.1 dev enp0s20u2使用ip命令,等效的语法是:
sudo ip route add 10.0.0.0/8 via 10.144.96.1 dev enp0s20u2因为无线段已经有了自动生成的路由,10.161.248.0/21段中的任何内容都将通过无线接口自动到达,包括最低度量的默认网关,因此这将为您提供基本的Internet连接,而新路由将通过有线接口将绑定到所有其他10.*段的流量发送到intranet网关。
如果您当前配置的DNS服务器位于intranet端,并且还将解析internet地址,那么所有这些都应该进行得很好。但是,如果您需要使用一个DNS服务器作为互联网地址,另一个用于内部网,那么它就变得复杂了。
首先,如果必须通过无线接口访问internet端DNS服务器,并且它不在10.161.248.0/21无线段中,则需要为其创建一个单独的路由条目。
其次,您将无法使用/etc/resolv.conf配置诸如“从此DNS服务器获取这些域的信息,以及从此其他DNS服务器获取所有其他域的信息”这样的配置。有时,我通过在缓存专用配置中安装本地绑定名称服务器并将internet端DNS服务器指定为默认转发器来解决这种情况,并为所有intranet DNS域编写指向intranet DNS服务器的每个区域转发器配置。
发布于 2017-12-14 09:01:25
基本上,您需要设置两条路由,如下所示:
请注意,我不知道要使用哪个网关,所以我使用数据中的那些网关:
sudo route add -net 10.144.96.0 netmask 10.144.99.0 gw 10.144.248.1 dev enp0s20u2
sudo route add -net 10.161.0.0 netmask 10.161.0.0 gw 10.161.248.1 dev wlp2s0太好了,所以我得再学一遍.
ip路由
sudo ip route add to 10.144.96.0/21 via 10.144.248.1 dev enp0s20u2
sudo ip route add to 10.161.0.0/22 via 10.144.248.1 dev wlp2s0看上去不对,对我来说,可能有用. ip route糟透了!
https://unix.stackexchange.com/questions/410808
复制相似问题