跳至内容

Jixun's Blog 填坑还是开坑,这是个好问题。

树莓派无线路由 + 网易云音乐海外绕过

前言 #

这个教程是很久以前写的了,部分信息可能已经不再准确。

准备 #

  • 树莓派 (型号 0/1/2/3 均可) - 1只
  • USB 无线网卡 (树莓派 0、1、2 需要)
  • 以太网 RJ45 转 USB (树莓派 0 需要)
  • 全新安装 Raspbien (其它发行版或已经安装有系统的树莓派酌情参考教程)
  • Micro-USB 转 USB (树莓派 0 需要)
  • USB 1 接 X (树莓派 0 需要)
  • microSD / SD 读卡器
  • 键盘鼠标

将各个部件连接到树莓派(除内存卡之外,无线网卡、键鼠、有线网络等),暂时不要连接电源。

阅读须知 #

本文教程中若行开头为 # 符号表示该指令需要 root 权限执行,例如 # nanopi 用户权限下需要使用 sudo nano 执行。

有时候需要长时间已 root 名义编辑配置文件,你可以现在通过 sudo passwd 修改 root 的密码,然后通过 su 登陆为 root 用户。

nano 为 linux 下的一个文本编辑器。编辑结束后,按下 Ctrl + XYEnter 保存修改;或将 Y 换成 N 放弃修改并退出编辑。

初始化系统 #

首先用 rufusWin32DiskImager 烧录 Raspbian Jessie With Pixel / Lite 镜像到内存卡,然后插入树莓派,启动。初次启动会提示内存卡分区调整完毕,五秒后自动重启。

Imgur

重启后使用 pi / raspberry 登入,登入进去后先启用 SSH (systemctl enable ssh),然后通过第三方软件如 Putty / SmarTTY 在电脑上连接 (方便复制粘贴)。

回到树莓派,此时你可以检查一下网络连接,curl goo.gl 是一个很简单的方法。

安装软件包 #

首先安装几个必须的软件包:

apt update
apt install hostapd iptables-persistent dnsmasq nginx

因为树莓派的性能不是特别好,因此可能会消耗几分钟,耐心等待即可。

安装 iptables-persistent 时会询问你是否保存现在的规则,全部选 YES 即可。

Imgur

配置 DHCP 服务 #

按下 Ctrl + W 搜索 interface=,去掉前方的 # 然后按照下图填写 (文字版在图片后面):

Imgur

interface=wlan0
bind-interfaces
dhcp-range=192.168.1.10,192.168.1.200,255.255.255.0,72h
dhcp-option=option:router,192.168.1.1
dhcp-option=option:dns-server,192.168.1.1

注意:一般来说 192.168.1.* 是你主路由器占用的 IP 段。我这里的网络环境有点特殊,路由器分配的 IP 是 10.*.*.* 所以可以这么做。如果冲突了的话,把 IP 从 192.168.1.* 改成 192.168.42.* 这样或者别的数字都可以。

此段感谢 @冰喵 菊苣告知 dnsmasq 也可以当 DHCP 服务器使用。

设定静态 IP #

因为树莓派作为路由器使用的话需要提供一个固定的 IP 地址,因此需要将 wlan0 的 IP 设定为之前指定的 IP。

首先停用无线网卡:

ifdown wlan0

然后修改网卡设定:

nano /etc/network/interfaces

找到 iface wlan0 inet manual,删掉然后加上:

    iface wlan0 inet static
        address 192.168.1.1
        netmask 255.255.255.0

Imgur

配置无线热点 #

现在可以配置无线热点了。使用 nano 打开配置文件 /etc/hostapd/hostapd.conf,贴入下述配置文件:

interface=wlan0
driver=nl80211
ssid=Pi_AP
country_code=US
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

有几个重要的信息需要注意:

  • driver 我也不知道怎么去找这个,如果启动不了可以试试换成 rtl871xdrv 或者删掉这一行。
  • ssid 是你的热点名称。
  • wpa_passphrase 是你的热点连接密码。

其他的配置信息也不是很懂,就留着这样吧..

现在可以来测试一下,看有没有问题:

hostapd /etc/hostapd/hostapd.conf

Imgur

像我这里,因为直接从 Windows 下粘贴到文件然后改进去,结果因为换行标准不同导致读取失败。

如果你也遇到了这个问题,你可以通过 # apt install dos2unix安装 dos2unix 这个小工具,然后运行 # dos2unix /etc/hostapd/hostapd.conf 修复这个问题。

另外要注意的是不能在等号前后、行结束的地方放空格,这个程序也会报错。


接下来就是告诉这个程序在默认配置里告知这个配置文件:

nano /etc/default/hostapd

寻找 #DAEMON_CONF="",改成 DAEMON_CONF="/etc/hostapd/hostapd.conf"

Imgur

以及在引导脚本内告知:

nano /etc/init.d/hostapd

找到 DAEMON_CONF= 并换成 DAEMON_CONF=/etc/hostapd/hostapd.conf

Imgur

启用网络转发 #

因为是作为无线热点使用,需要将无线流量转发到有线流量。树莓派默认是没有启用网络设备的流量转发功能。

nano /etc/sysctl.conf

找到 #net.ipv4.ip_forward=1 然后把前面的 # 给去掉保存即可。

Imgur

然后就是利用 iptables 转发流量到有线网络:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

然后做下优化,根据 MTU 自动调整 MSS(可选,由@冰喵提供):

iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

规则加入后记得保存,下次重启自动应用规则:

iptables-save > /etc/iptables/rules.v4

屏蔽 IP #

iptables 作为 Linux 下的一个“防火墙”,当然可以屏蔽指定的 IP。

iptables -I FORWARD -d 223.252.199.10 -j REJECT

上面这条指令就是告诉防火墙,拒绝转发流量至 223.252.199.10 这个地址。

规则加入后记得保存:

iptables-save > /etc/iptables/rules.v4

配置 DNS #

打开配置文件:

nano /etc/dnsmasq.conf

按下 Ctrl + W 然后输入 no-hosts 回车:

Imgur

no-hosts 前面的 # 去掉,然后后面的 #addn-hosts= 改成:

addn-hosts=/etc/hosts_extra

接着修改给 DNS 服务使用的 hosts 文件:

nano /etc/hosts_extra

放入服务器地址:

0.0.0.0 music.httpdns.c.163.com

192.168.1.1 music.163.com
192.168.1.1 ip.ws.126.net

125.39.1.27 m10.music.126.net

Imgur

然后保存退出。

配置 nginx #

参考之前的文章:手动搭建 → 加入配置文件

当然文章里的 proxy_set_header X-Real-IP 110.76.23.1; 这个地方,需要你另找一个国内的 IP 地址。

提示: 的服务器 IP,很多选择。

启动服务 #

update-rc.d hostapd enable
update-rc.d isc-dhcp-server enable
update-rc.d dnsmasq enable
update-rc.d nginx enable

然后就执行 reboot 重启树莓派,看手机能不能连上去了:

实际测试 #

▲ 手机成功连接树莓派热点

▲ 手机不需要进行额外设定,也不需要进行 root 操作,全设备支持。

结束 #

▲ 树莓派 0 无线路由的最终样貌。

左边的 USB Hub 前面从上往下分别为:无线键鼠、无线网卡、U 盘;后面分别为网线转 USB、树莓派接入、外置电源(因为树莓派 0 的 USB 口供电不够大)。

参考 #

知识共享许可协议 本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

评论区