使用设备

  • Raspberry Pi 4 Model B(System:Raspbian Buster with desktop Image with desktop based on Debian Buster Version:July 2019)
  • 16GB SD Card
  • 读卡器

前述

教育网通常情况下ipv6免费,ipv4视学校定价策略收费。ipv4由学校向运营商购买出口带宽,直接由学校教育网出口到运营商;ipv6则统一使用Cernet2的带宽。关于天津大学的校园网信息可参见天津大学校园网相关信息
有关Cernet2海外路由问题的相关信息可见文末参考[2]。使用HKT和HKBN应该在速度和延迟上体验是最好的,但是由于本校可能对ipv6进行了限速,所以无法得知此线路速度上限,但是足够日常使用(100Mbps)。

准备工作

这是面对从未使用树莓派的新手的简易指南,如果对树莓派有所了解,可忽略此部分
  • 使用SDFormatter(Google Drive/Onedrive)对SD Card进行格式化。从树莓派官网下载最新的Raspbian系统,建议选择Raspbian Buster with desktop
  • 使用win32diskimaer(sourceforge/Google Drive/Onedrive)对SD Card完成刻录。由于ssh默认关闭,需要在刻录完成后根目录内创建名为ssh的空文件
  • 如果有显示屏可以直接连接然后配置即可。在无屏幕情况下可以用网线将电脑与树莓派连接,同时电脑使用WLAN上网,并将此WLAN共享给电脑与树莓派间的以太网连接。输入arp -a命令查询树莓派ip地址。(如果在这一步出现问题,可以禁用以太网连接再启用) 7452393373784449 7845352636928232
    (图中树莓派ip为192.168.137.122)
  • 使用Xshell进行连接,默认用户名pi,密码raspberry
  • 换源和软件包更新
//清华大学源可直接通过ipv6连接
sudo sed -i 's#://raspbian.raspberrypi.org#s://mirrors.tuna.tsinghua.edu.cn/raspbian#g' /etc/apt/sources.list
sudo sed -i 's#://archive.raspberrypi.org/debian#s://mirrors.tuna.tsinghua.edu.cn/raspberrypi#g' /etc/apt/sources.list.d/raspi.list
sudo apt update && apt upgrade -y && apt autoremove
sudo reboot
  • VNC viewer不支持空密码,使用root用户须先设置密码,否则将无法连接。Raspbian Buster with desktop中带有realvnc服务端,可直接开启,客户端可于realvnc官网下载

无线AP设置

  • dnsmasq负责管理wlan0的DHCP和hostapd负责管理无线热点:
sudo apt install dnsmasq hostapd
  • 在配置完成前暂时将它们关闭:
sudo systemctl stop dnsmasq
sudo systemctl stop hostapd
  • 配置网卡wlan0的固定IP,在/etc/dhcpcd.conf文件末尾添加:
interface wlan0
    static ip_address=192.168.4.1/24
    nohook wpa_supplicant
  • 重启dhcpcd使配置生效:
sudo service dhcpcd restart
  • 配置dnsmasq,在/etc/dnsmasq.conf文件末尾添加:
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
  • 开启dnsmasq:
sudo systemctl start dnsmasq
  • 配置hostapd,可供参考的配置文件/etc/hostapd/hostapd.conf如下:
    (关于树莓派5Ghz Wifi的说明请见参考[4]
interface=wlan0
driver=nl80211
hw_mode=a
ieee80211ac=1
require_ht=1
require_vht=1
wmm_enabled=1
country_code=US
vht_oper_chwidth=1
channel=149
vht_oper_centr_freq_seg0_idx=155
ht_capab=[HT40-][HT40+][SHORT-GI-40][DSSS_CCK-40]
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ssid=zeocax
wpa_passphrase=zeocax
  • 修改hostapd服务的配置,并使其开机自启。在/etc/default/hostapd末尾添加:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
  • 开启ipv4转发,在/etc/sysctl.conf文件末尾添加:
net.ipv4.ip_forward = 1
  • 使ipv4转发生效:
sudo sysctl -p /etc/sysctl.conf
  • 配置完成,开启hostapd服务:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
这里经过不断试错发现的三个问题(如果有人能解决这些问题或者给出问题原因欢迎在评论区留言,十分感谢):
  1. hostapd.conf中注释中有中文字符会报错。
  2. country_code设置为CN会报错。
  3. US按照规定应该可以使用信道36,但是信道36启动时会报错。日版NS还得经由电脑再开一次热点。

透明代理搭建

根据国家相关法律法规及政策,此处内容不予显示。
在阅读此部分前请保证对代理有一定的了解,本处仅采用V2ray作为示范,若采取其它方案可自行阅读参考[5]
  • 使用官方安装脚本安装V2ray:
sudo bash <(curl -4sSkL https://install.direct/go.sh)
  • V2ray相关的的文件如下:
/etc/v2ray/config.json      配置文件
/usr/bin/v2ray/v2ray        V2Ray 程序
/usr/bin/v2ray/v2ctl        V2Ray 工具
/usr/bin/v2ray/geoip.dat    IP 数据文件
/usr/bin/v2ray/geosite.dat  域名数据文件
  • 通过查看帮助信息检查是否安装成功:
/usr/bin/v2ray/v2ray -help
接下来配置V2ray,此时如果对V2ray配置不熟悉,建议在电脑端使用V2ray图形化版本(V2rayNG)配置并测试成功,再直接复制此时的config以保证配置正确。

透明代理设置

对V2ray配置修改和iptables规则请见参考[3]V2ray文档

测试

2553745222923863
从上到下依次为直接于树莓派上测速,直接于电脑上测速,通过树莓派搭建的透明代理测速。此时Steam下载速度约为2MB/S。
略微思考了一下,相较于树莓派直接测速,通过树莓派搭建的透明代理测速只增加了一个WLAN过程和几条iptables规则。而iptables规则一般不可能起到减慢网速的作用(刻意去做或许能够实现?)。所以原因只可能是无线网络,再次查看hostapd配置(这是最初配置,已在教程中删去)发现:
hw_mode=g:IEEE 802.11g (2.4 GHz)。2003年规范。最大理论速率54Mbps
改用5GHz更改配置文件后测速可达到应有速度(百兆左右上下行对等),Steam下载速度10Mb/s:
2446582872377342
2763863952632532

参考

  1. Setting up a Raspberry Pi as a Wireless Access Point
  2. 盘点适合教育网CERNET IPv6使用的VPS
  3. V2ray教程
  4. 板载无线模块说明 2019-06-20
  5. ss-tproxy
  6. 基于openvpn的校园网ipv6免流量方案
Author: @zeocax
Time: 2019-09-30
Copyright: CC BY 4.0