香橙派的USB/以太网应用

之前看到树莓派 USB-gadget 网卡的用法,发现国产的开发板配置相对树莓派Zero高得多,拿来做成网络转发的应该很有前途,于是乎就买了最便宜的香橙派(orange pi one)来试试,结果很是顺利,结合以前的研究资料,没多大代价就做了出来,这里跟大家分享一下。

首先去 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,用捡回来旧硬盘玩这个再爽不过,总之这个玩法,我觉得比较有前途,不知道各位怎么看呢?

来自 Skypikaqiu 的投稿。

坐沙发

发表评论

你的邮件地址不会公开


*