本文讲述了如何在OpenWRT、Linux、Windows和Android系统下搭建代理服务器、实现流量转发以及让特定程序的流量走代理


一、搭建代理服务器


OpenWRT

1
2
3
opkg update
opkg install tinyproxy luci-app-tinyproxy
vi /etc/config/tinyproxy

启动

1
/etc/init.d/tinyproxy restart

Linux

1
2
3
4
apt-get install squid
nano /etc/squid/squid.conf
http_access deny all 改为 http_access allow all
service squid restart

Windows

下载squid
启动,右下角-Start Squid Service,端口号为3128
PS:我不确定不把http_access deny all 改为 http_access allow all有什么问题


Android

下载EveryProxy


二、使用代理服务器


测试

1
2
curl http://www.baidu.com --proxy 192.168.1.102:3128
curl http://www.baidu.com -x 192.168.1.100:3128

Windows

可以使用SocksCap64启动指定程序,我的仓库有下载


Linux使用全局代理

1
2
export http_proxy=http://192.168.1.100:3128
export https_proxy=http://192.168.1.100:3128

Git

设置http代理

1
2
git config --global http.proxy 'http://192.168.1.100:3128'
git config --global https.proxy 'http://192.168.1.100:3128'

取消代理

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

pip

1
python3 -m pip install paramiko  --proxy=192.168.1.5:2333

java使用代理启动jar包

1
java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1081 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=1081 -jar BuildTools.jar

三、流量转发


OpenWRT

安装socat:

1
opkg install socat

从0.0.0.0:10000转发到192.168.2.100:8000

1
socat TCP4-LISTEN:10000,reuseaddr,fork TCP4:192.168.2.100:8000 &

Linux

安装rinetd

1
2
安装
apt-get install rinetd

卸载

1
apt-get purge rinetd

配置文件

1
nano /etc/rinetd.conf

启动

1
rinetd -c /etc/rinetd.conf

关闭

1
pkill rinetd

Windows

使用自带的netsh,从192.168.192.204:2222转发到10.1.1.1:22

1
netsh interface portproxy add v4tov4 listenaddress=192.168.192.204 listenport=2222 connectaddress=10.1.1.1 connectport=22

删除流量转发

1
netsh interface portproxy delete v4tov4 listenaddress=192.168.192.204 listenport=2222

查看映射列表

1
netsh interface portproxy show v4tov4

也可以使用Porttunnel,可以注册开机服务


四、参考

OpenWRT中的Tinyproxy文档