当香橙派 ubuntu 连了有线,和无线时,默认请求外网时,只走一个网卡,如走了内网网卡,就只能访问内访问,访问不了外网;走了外网网卡就只能访问外网,访问不了内网;
实现双网卡,内网,外网,打通内网都能访问需要进行配置
通过ifconfig 查看网卡情况
eth0 有线网线络,为内网 不可以上网
wlan0 无线网络 为外网 可以上网
查看路由
ip route
这时访问外网,都走metric=100的网卡,即为内网的,上不了网
ping www.baidu.com 是不通的
如果把metric=100 改为metric=700,那是可以访问外网,但是访问内网又不行了,只能走一个网卡
因此,通过配置下面路由设置后,就可以 内网,外网都通了
在ubuntu中执行以下指令
#外网路由设置
route add -net 0.0.0.0/0 wlan0
route add -net 0.0.0.0/0 gw 192.168.1.1 #外网网关
#内网路由设置
route add -net 192.168.20.0/24 eth0
route add -net 192.168.20.0/24 gw 192.168.20.1 #内网网关
意思是
192.168.20.0开头的请求,走192.168.20.1 内网网关,其它请求走192.168.1.1 网关
这个route配置只存在内存中,如果重启后,配置又失效了,所以做一个开个开机启动自动配置功能
制作开机启动文件
ipRouteMetirc.service
[Unit]
Description="ipRouteMetirc.service"
After=network.target
[Service]
Type=simple
GuessMainPID=true
ExecStartPre=/bin/sleep 5
ExecStart=/etc/systemd/system/ipRouteMetirc.local
[Install]
WantedBy=multi-user.target
ipRouteMetirc.local
#!/bin/bash
route add -net 0.0.0.0/0 wlan0
sleep 2
route add -net 0.0.0.0/0 gw 192.168.1.1
sleep 2
route add -net 192.168.20.0/24 eth0
sleep 2
route add -net 192.168.20.0/24 gw 192.168.20.1
把ipRouteMetirc.service和ipRouteMetirc.local
都放到/etc/systemd/system/目录下面
执行指令
#权限
chmod 777 /etc/systemd/system/ipRouteMetirc.local
#开机服务
systemctl enable ipRouteMetirc.service;
#启动服务
systemctl start ipRouteMetirc.service
#查看启动状态
systemctl status ipRouteMetirc.service
完成
然后在ubuntu上面测试一下
ping 外网地址
ping 内网地址
看下通了没有
问题解决
#查看启动状态
systemctl status ipRouteMetirc.service
如果这里有出现报错
bad interpreter: No such file or directory
则是ipRouteMetirc.local 的文件格式问题导致 ,需把doc格式改成unix
一、是因为Linux无法识别出Windows的DOS格式,此时只需将文件格式转换成unix的即可,方法如下:
1、编辑出错文件
vi filename
2、查看该格式(报错文件格式是DOS)
:set ff
3、修改格式
:set ff=unix
4、保存退出
:wq!
二、ipRouteMetirc.local文件的首行
#!/bin/bash
后面有空格,也会报错
完成