1 概述
为了让手机和电脑能透明使用socks代理,购入了一个树莓派,释放wifi热点,然后电脑或手机连接wifi热点后自动转代理即可
2 安装系统
2.1 环境
MacOS+树莓派3B
2.1 下载系统
先下载最新官方系统,解压后得到img文件
2.2 烧录系统
将minisdcard插入读卡器,最好放到usb3接口上
- df -h查看sdcard卡挂载
- umount取消挂载
- dd直接将映像文件写入到sdcard上即可,注意目标是rdisk2,不是disk2,不然会很慢
- 想中途查看dd进度的话,可以用kill -INFO $PID
2.3 连接系统
将sdcard插入到系统上,网口连接路由器,树莓派默认会自动获取ip地址,并且开启ssh端口。然后,我们在路由器的dhcp客户端列表中就可以到树莓派的ip地址了
然后使用默认的ssh就能登录了,账号是pi,密码是raspberry
2.4 基础配置
输入sudo raspi-config进行基础配置,更改密码,以及默认启动command-line
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
更新apt的源为阿里镜像,然后apt-get update更新一下
sudo apt-get install vim
安装基础软件vim
3 网络配置
3.1 有线配置
# 指定接口 eth0
interface eth0
# 指定静态IP,/24表示子网掩码为 255.255.255.0
static ip_address=192.168.1.31/24
# 路由器/网关IP地址
static routers=192.168.1.1
# 手动自定义DNS服务器
static domain_name_servers=114.114.114.114
将有线网络设置为静态ip,修改/etc/dhcpcd.conf文件即可,完成后reboot
3.2 无线配置
sudo apt-get install hostapd dnsmasq
安装hostapd(无线热点工具),dnsmasq(DHCP和dns工具)
interface=wlan0
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,12h
配置/etc/dnsmasq.conf
interface=wlan0
hw_mode=g
channel=10
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa_passphrase=wifi密码
ssid=wifi名字
配置/etc/hostapd/hostapd.conf
net.ipv4.ip_forward=1
配置内核的路由转发/etc/sysctl.conf
sudo ifconfig wlan0 down
sudo ifconfig wlan0 10.0.0.1 netmask 255.255.255.0 up
sudo rm -rf /dev/random
sudo ln -s /dev/urandom /dev/random
sudo service dnsmasq restart
sudo hostapd -B /etc/hostapd/hostapd.conf & > /dev/null 2>&1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
在/etc/rc.local的exit前面配置这些启动项
然后用手机连接wifi热点就可以了
4 代理配置
4.1 shadowsocks
git clone git@github.com:shadowsocks/shadowsocks-libev.git
sudo apt-get install --no-install-recommends build-essential autoconf libtool libssl-dev libpcre3-dev asciidoc xmlto
cd shadowsocks-libev
./configure
make
下载shadowsocks的客户端版本,并安装依赖包libevent,然后configure,最后make开始编译
cd src
sudo ln -s ss-local /bin/ss-local
sudo mkdir /etc/shadowsocks
sudo touch /etc/shadowsocks/shadowsocks.json
编译成功后src会出现ss-local可执行文件,把它放到bin目录下,并创建shadowsocks.json配置文件
{
"server":"服务器ip",
"server_port":"服务器端口",
"local_address": "127.0.0.1",
"local_port":1080,
"password":"服务器密码",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
在shadowsocks.json填写以上配置
4.2 redsocks
git clone git@github.com:darkk/redsocks.git
sudo apt-get install libevent-dev
cd redsocks
make
下载redsocks,并安装依赖包libevent,然后make开始编译
sudo ln -s redsocks /bin/redsocks
sudo mkdir /etc/redsocks
sudo touch /etc/redsocks/redsocks.conf
编译成功后会出现redsocks可执行文件,把它放到bin目录下,并创建redsocks.conf配置文件
base{
log_debug = on;
log_info = on;
log = "file:/var/log/redsocks.log";
daemon = on;
redirector = iptables;
user = nobody;
group = nobody;
}
redsocks {
local_ip = 127.0.0.1;
local_port = 31338;
ip = 127.0.0.1;
port = 1080;
type = socks5;
}
在redsocks.conf填写以上配置
4.3 iptables
sudo ss-local -c /etc/shadowsocks/shadowsocks.json & > /dev/null 2>&1
sudo redsocks -c /etc/redsocks/redsocks.conf & > /dev/null 2>&1
sudo iptables -t nat -N REDSOCKS
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 服务器IP -j RETURN
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 31338
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp -j REDSOCKS
将以上配置写入到/etc/rc.local自启动项,启动后打开ss-local与redsocks,并让本地的tcp通信和无线的tcp通信都指向到redsocks中去。最后重启一下就ok了
5 总结
让树莓派做了透明代理后,非常好用。手机,和电脑都不需要装任何的代理软件以及做任何的配置,直接连上pi的wifi就能翻墙了,兼容性好,速度也还不错。
唯一有点忧伤的是,树莓派说到底还是学习平台,wifi和网卡性能都比较弱。
- 本文作者: fishedee
- 版权声明: 本博客所有文章均采用 CC BY-NC-SA 3.0 CN 许可协议,转载必须注明出处!