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


目录

  1. 搭建代理服务器
    1. OpenWRT
    2. Linux
    3. Windows
    4. Android
  2. 使用代理服务器*
    1. 测试
    2. Windows
    3. Linux使用全局代理
    4. Git
    5. apt
    6. pip
    7. java使用代理启动jar包
  3. 流量转发
    1. OpenWRT
    2. Linux
    3. Windows
  4. 参考

搭建代理服务器

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
3
4
export http_proxy=http://192.168.1.100:3128
export https_proxy=http://192.168.1.100:3128
unset http_proxy
unset https_proxy

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

apt

设置代理

1
sudo nano /etc/apt/apt.conf.d/proxy.conf

添加

1
2
Acquire::http::Proxy "http://192.168.56.102:3128/";
Acquire::https::Proxy "http://192.168.56.102:3128/";

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
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文档