之前看到USB-gadget网卡的用法,发现国产的开发板配置相对树莓派Zero高得多,拿来做成网络转发的应该很有前途,于是乎就买了最便宜的香橙派(orange pi one)来试试,结果很是顺利,结合以前的研究资料,没多大代价就做了出来,这里跟大家分享一下。
首先去一趟www.armbian.com ,去看看哪些板子支持ARMBIAN系统,再看看板子的图片上有没有usb-otg接口,理论上支持ARMBIAN和有OTG口和网口的板子,都能做成ARM网卡来玩。国产就香橙派和NANO Pi做得高性价比。
刷入系统跟普通的一样用Win32diskimager或者Etcher都可以,把对应的ARMBIAN系统刷进去TF卡里,然后就插入开机就可以。默认账户密码是root 、1234,进去之后,需要自己修改和设置非root账号密码,这些最好是有HDMI显示器和键盘本机设置。ssh默认开启。
只要往/etc/rc.local文件里面加入这三句启动语句 :
modprobe g_ether
ifconfig usb0 up
ifup usb0
重启后,USB-OTG口就是网络模式了,用手机数据线连接到电脑的USB口,就能识别出USB-RNDIS网络设备了。
安装一下所需要的dhcp软件
sudo apt update
sudo apt install dnsmasq isc-dhcp-common
然后修改 /etc/dhcpcd.conf文件,
sudo nano /etc/dhcpcd.conf
在文件末尾添加这两句
interface usb0
static ip_address=192.168.253.1/24
然后再修改 /etc/network/interfaces文件
sudo nano /etc/network/interfaces
添加一下段落(或者修改到跟以下段落一样)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto usb0
iface usb0 inet static
address 192.168.253.1
netmask 255.255.255.0
修改完毕之后,重启dhcp服务
sudo service dhcpcd restart
重启dhcp失败了也不要紧,可以直接重启树莓派。
sudo reboot
重启过后,修改网段配置文件
sudo nano /etc/udhcpd.conf
start 192.168.253.100 #配置网段
end 192.168.253.150
interface usb0 # The device uDHCP listens on.
remaining yes
opt dns 192.168.1.1 223.5.5.5
opt subnet 255.255.255.0
opt router 192.168.253.1 # 无线lan网段
opt lease 3600 # 租期一小时
之后备份一下文件/etc/dnsmasq.conf
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
然后编辑
sudo nano /etc/dnsmasq.conf
添加一下段落的文件(或者修改到跟以下段落一样)
interface=usb0
bind-interfaces
server=180.76.76.76
server=114.114.114.114
server=223.5.5.5
domain-needed
bogus-priv
dhcp-range=192.168.253.2,192.168.253.254,1h
然后再修改文件dhcp规则文件之一的/etc/sysctl.conf
sudo nano /etc/sysctl.conf
再末尾添加以下内容
# Uncomment the next line toenable packet forwarding for IPv4
net.ipv4.ip_forward=1
添加完毕之后,设置转发规则
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -APOSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"
再往/etc/network/interfaces末尾添加一下内容。
sudo nano /etc/network/interfaces
添加以下语句
up iptables-restore < /etc/iptables.ipv4.nat
然后保存退出
再编辑一下文件
sudo nano /etc/network/if-pre-up.d/iptables
往里面添加以下段落
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.ipv4.nat
保存退出之后,设置一下权限
sudo chmod 755 /etc/network/if-pre-up.d/iptables
我们需要新建空文件/lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat,
sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
然后输入 :wq 回车退出
再设置一下转发
sudo iptables-restore < /etc/iptables.ipv4.nat
重启一下dnsmasq服务
sudo service dnsmasq start
然后重启树莓派。
到此,香橙派以太网卡就成功了。把USB-OTG接口用一根USB手机数据线,连接到电脑,网口连接到路由器,就可以上网了。速度也测试了一下,迅雷全速下载能到百兆全速,CPU使用率在12%左右,比树莓派+SPI网卡的400Kb/s就占用60%提高极为明显。这东西要是好好设置,应该能做一个不错的防火墙,防止被黑客直接攻击电脑,或者加一点其他东西,例如USB转SATA口、纯SATA口阵列卡、电脑电源、一大堆旧硬盘等,可以做成NAS或者DAS,用捡回来旧硬盘玩这个再爽不过,总之这个玩法,我觉得比较有前途,不知道各位怎么看呢?