我在远端有一台服务器,因为某些原因需要用这台服务器作为流量出口,当然可以通过搭建某些软件配置成V*N访问,但是那不是我想要的(因为远端的服务器配置太低了)。除了传统的ss类软件,我找到了3proxy这个小东西。
软件是支持Windows和linux的,我在本地搭建了个debian虚拟机,根据我的配置安装软件:
# wget https://github.com/3proxy/3proxy/releases/download/0.9.4/3proxy-0.9.4.x86_64.deb
# dpkg -i 3proxy-0.9.4.x86_64.deb
3proxy installed.
Failed to stop bin-systemctl.mount: Unit bin-systemctl.mount not loaded.
Failed to stop start.service: Unit start.service not loaded.
Failed to stop echo.service: Unit echo.service not loaded.
Failed to stop use.service: Unit use.service not loaded.
systemctl start 3proxy.service
to start proxy
systemctl stop 3proxy.service
to stop proxy
/usr/local/3proxy/conf/add3proxyuser.sh
to add users
Default config uses Google's DNS.
It's recommended to use provider supplied DNS or install local recursor, e.g. pdns-recursor.
Configure preferred DNS in /usr/local/3proxy/conf/3proxy.cfg.
run '/usr/local/3proxy/conf/add3proxyuser.sh admin password' to configure 'admin' user
Processing triggers for man-db (2.11.2-2) ...
然后去/etc/3proxy下修改3proxy.conf添加如下内容:
# 超时的时间值
timeouts 1 5 30 60 180 1800 15 60
# 内部IP地址,不可使用127.0.0.1,要具体地址,这里填你的电脑ip地址
internal 192.168.XX.XX
#无认证
auth none
flush
# 允许所有你配置的用户连接
allow *
# 这里手动指定端口1080
socks -p1080
然后执行命令重启服务:
systemctl restart 3proxy.service
最后在本地配置代理地址就行了。 比如我的虚拟机ip是192.168.50.50,那代理信息应该配置为:
IP:192.168.50.50
PORT:1080
USERNAME:
PASSWORD:
如果配置完执行systemctl status 3proxy提示:
Dec 28 21:30:04 ProxyServer 3proxy[343005]: Failed to open pid file /var/run/3proxy/3proxy.pid
Dec 28 21:30:04 ProxyServer 3proxy[343005]: Command: 'pidfile' failed with code 1, line 3
则新建该文件
touch /var/run/3proxy/3proxy.pid
然后可能会提示:
ProxyServer 3proxy[2616]: /conf/passwd: No such file or directory
但是这个文件是实际存在的,在/etc/3proxy/conf/3proxy.conf中被配置为:
users $/conf/passwd
直接把这里修改成:
users /etc/3proxy/conf/passwd
然后重启程序即可。
如果无法连接到该端口,建议看一下是否打开了防火墙并有放行端口。
更新:在https://bgithub.xyz/3proxy/3proxy/issues/374中有提到:“Remove pidfile /var/run/3proxy/3proxy.pid it’s not required with systemd, current master fixes it already.“也就是说3proxy.pid对于systemd并不是必须的,所以如果提示:
Failed to open pid file /var/run/3proxy/3proxy.pid
可以尝试删掉或注释掉/etc/3proxy/3proxy.conf内的:
pidfile /var/run/3proxy/3proxy.pid
这一行。修改后的3proxy.conf应该像:
#!/bin/3proxy
#daemon
#pidfile /var/run/3proxy/3proxy.pid
chroot /usr/local/3proxy proxy proxy
include /conf/3proxy.cfg
然后重启3proxy服务:
systemctl restart 3proxy
此时程序应该能够正常运行了:
[root@shell conf]# systemctl status 3proxy
● 3proxy.service - 3proxy tiny proxy server
Loaded: loaded (/usr/lib/systemd/system/3proxy.service; enabled; preset: disabled)
Active: active (running) since Wed 2026-03-04 11:05:40 CST; 6s ago
Docs: man:3proxy(1)
Main PID: 2591424 (3proxy)
Tasks: 5 (limit: 2271)
Memory: 3.1M (peak: 3.4M)
CPU: 7ms
CGroup: /system.slice/3proxy.service
└─2591424 /bin/3proxy /etc/3proxy/3proxy.cfg
Mar 04 11:05:40 VM-0-11-opencloudos systemd[1]: Started 3proxy.service - 3proxy tiny proxy server.