开源项目地址:GitHub - mullvad/udp-over-tcp: Proxy UDP traffic over a TCP stream
#Ubuntu下编译
git clone https://github.com/mullvad/udp-over-tcp.git
cd udp-over-tcp
#安装依赖依赖
apt install cargo -y
#开始编译
./build-static-bins.sh
#编译好之后,拿走所需的可执行文件,其余可删除
mv target/x86_64-unknown-linux-gnu/release/tcp2udp /usr/local/bin/tcp2udp
mv target/x86_64-unknown-linux-gnu/release/udp2tcp /usr/local/bin/udp2tcp安装wireguard的vps(vps的公网IP为128.1.2.3)上运行tcp2udp,监听tcp端口4567,转发到wireguard的udp端口,命令如下。
tcp2udp --tcp-listen 0.0.0.0:4567 --udp-bind=127.0.0.1 --udp-forward 127.0.0.1:55555 --tcp-recv-timeout=130 --nodelay
在中转的vps(例:本地VMware安装的Ubuntu虚拟机)上运行udp2tcp,监听udp端口8910
转发到安装wireguard的vps端口4567 udp2tcp --udp-listen 0.0.0.0:16816 --tcp-forward <修改为wireguard服务ip>:4567 --tcp-recv-timeout=130 --nodelay
wireguard客户端连接到虚拟机端口16816即可
后台运行说明:
安装 Supervisor:
sudo yum install supervisor配置 Supervisor:
Supervisor 的配置文件位于
/etc/supervisord.conf。一般情况下,您不需要修改这个文件。您可以在
/etc/supervisord.d/目录下创建任务配置文件(以.ini结尾)。ubuntu的在/etc/supervisor/conf.d建,格式是conf。将需要管理的后台任务放在这个目录下。编辑配置文件,指定要执行的命令、启动目录、日志文件等参数。
启动 Supervisor:
sudo systemctl start supervisord
创建任务配置文件:
在
/etc/supervisord.d/目录下创建一个子配置文件,例如mycommand.ini。编辑子配置文件,定义您要执行的命令和其他参数:
[program:udp2tcp] command=/usr/local/bin/udp2tcp --udp-listen 0.0.0.0:16816 --tcp-forward wireguard服务器地址:4567 --tcp-recv-timeout=130 --nodelay directory=/usr/local/bin autostart=true autorestart=true stdout_logfile=/opt/udp2tcp/logfile.log
重要参数说明:
command:要执行的命令及其参数。directory:程序的启动目录。autostart:Supervisor 启动时是否自动启动该任务。autorestart:程序异常退出后是否自动重启。stdout_logfile:自定义的输出日志文件。
重新读取配置并启动进程:
使用以下命令重新读取配置文件并启动新添加的进程:
supervisorctl reread supervisorctl update supervisorctl start mycommand
或者添加systemd配置到/etc/systemd/system
[Unit]
Description=udp2tcp service
After=network.target
[Service]
Type=simple
User=nobody
ExecStart=/usr/local/bin/udp2tcp --udp-listen 0.0.0.0:16816 --tcp-forward wireguard服务器地址:4567 --tcp-recv-timeout=130 --nodelay
Restart=always
[Install]
WantedBy=multi-user.target
评论