目前入手一个树莓派4B,有两个网卡,一个有线,一个无线,正好手头上也有一个机器不能使用无线,就想到了让这个派帮忙共享网络,连接有线使用。
这样,网络环境就是这样:
无线->外网 ip:192.168.1.5
有线->内网机器 ip : 192.168.2.1
其实Linux下做网络共享非常方便,首先要做的就是开启IP转发。
两种方式:
方法一:
sudo echo "1" > /proc/sys.Net/ipv4/ip_forward
使用sudo是个好习惯。这里的1表示开启。0表示关闭。
方式二:
sudo nano /etc/sysctl.conf
然后找到# net.ipv4.ip_forward = 0这一行,把注释去掉,并把0改为1
然后
sudo sysctl -p
这一行是使修改生效,就用重启系统了。
接下来就是要修改iptables规则,让数据包可以在内网外网间互相联通,也就是通过两个网卡进行转发,其本质是修改网络包的转发链,使用的命令如下:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE #打开NAT
这里的wlan0是连接外网的网卡。
如果不知道网卡名称,可以用ifconfig命令查看,直接运行就即可。
到这里,如果没有什么问题,就需要配置内网机器的IP地址和网关上网了。
注意,内网机器,也就是通过网线连接树莓派的机器的地址需要和eth0的地址在同一个网段
例子:
IP:192.168.2.5
Mask:255.255.255.0
gateway:192.168.2.1 // 这个网关也就是eth0的ip地址
还需要设置路由:192.168.1.1 // 这里我是设置的路由器地址,其它值没试过。
到这里,客户机就可以正常上网了。
------------------------------------------------------我是问题分隔线-------------------------------------------------------------
不过我还遇到了别的问题。树莓派自己不能上外网,经过查看,是找不到路由导致,这时候就需要再树莓派上手动添加,使用命令如下:
sudo route add default gw 192.168.1.1
同样,使用的是路由器的地址。
最终,在客户机上打开浏览器,访问网页,正常了。