在外面调试程序,内网是调试程序必须的,而要上外网,又只有通过无线连接。不过发现这样有个问题,就是在笔记本的无线连上外网的时候,只要插上内网的网线,就发现 qq 一类的一律掉线,外网连接就不行了,网页也打不开。这样搞的比较麻烦,每次测试完程序,要手动拔掉网线,外网才能上。感觉这样的做法太麻烦了,能否内网和外网同时接入到笔记本,不用每次拔网线呢?其实可以做到的,是因为 Windows 默认路由设置的问题。Windows 每次会默认把对所有 IP 的访问,指向以太网或者无线网的网关,当同时接入两个、或者多个连接时,这样的默认路由会有问题,需要我们手动修改一下。
Windows 系统
查看路由表信息
route print
需要通过 route 命令来设置,下面就是个例子,进入 CMD(以管理员身份启动):
例如,要想同时使用有线网上内网、无线网上外网,可以这样设置
-
设置无线网卡为默认路由网关:无线网络连接属性—Internet 协议(TCP/IP)-属性-高级,手动输入无线路由网关,我这里的是 192.168.1.1,跃点数为“1”,是最高优先级。到了这一步,如果有线连接,无线连接同时存在的话,所有的数据都是经由无线网卡处理的。
-
route delete 0.0.0.0
(删除对所有 IP 的默认路由设置) -
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
(将对所有 IP 的路由,指向外网网关 IP,外网网关 IP 假设为 192.168.1.1) -
route add 201.201.201.0 mask 255.255.255.0 200.101.5.2
(对内网某个网段的访问,指向内网网关地址,内网网关 IP 假设为 200.101.5.2)
其中 192.168.1.1 为无线网网关,10.122.2.1 为有线网网关。这两句话的意思是:对于所有 IP 地址的访问,都从 192.168.1.1 走;但是,对于 201.201.201 开头的地址的访问,从 200.101.5.2 走。如果希望通过有线上外网,无线上内网的话,以此类推……
MAC 系统
查看路由表:
netstat -nr
路由命令格式:route [-dnqtv] command [[modifiers] args]
支持的命令包括:add、flush、delete、change、get、monitor。
对于 monitor 和 flush 命令,后面不需要额外的参数,对于 add、delete、change、get 参数,则需要按照以下格式输入:
route [-n] command [-net | -host] [-ifscope boundif] destination gateway [netmask]
范例:
添加具体 IP:
sudo route -v add ip gateway [-netmask net-mask-ip]
-host
添加具体的地址
sudo route -v add -host 128.192.214.29 gateway
-net
添加网段路由:
sudo route -n add -net 172.30.0.0 -netmask 255.255.255.0 172.30.5.1
删除路由:
- 具体 IP:
sudo route -v delete ip
- 指定网段:
sudo route -v delete -net 10.10.12.0 -gateway 10.10.12.1