- 安装socat
复制代码
apt install socat
- 根据需求确定要转发的端口
比如,我的需求是监听IPv6的某一TCP端口,并转发至局域网内某一特定主机,可以使用以下命令:复制代码
socat TCP6-LISTEN:xxxx,fork TCP:1.2.3.4:xxx
UDP端口也类似:复制代码
socat UDP6-LISTEN:xxxx,fork UDP:1.2.3.4:xxx
由于 UDP 是无连接的传输层协议,socat监听UDP端口的子进程创建后可能无法自动关闭,可以设定超时参数 -T<超时时间>
指定超时时间,当达到超时时间后无其余操作则会自动结束当前子进程。
将以上命令放置在后台运行,即可转发端口。
- 使用 systemd 守护后台运行的转发进程
默认情况下, socat 以 daemon 进程形式运行在前台,不方便管理,采用 systemd 进行管理:
- 新建 service 文件,使用以下内容保存在
/lib/systemd/system/socat_forward.service
:
复制代码
[Unit]
Description = Socat Daemon For Port Forward
After = network-online.target
[Service]
Type = simple
ExecStart = /usr/bin/socat -dd TCP-LISTEN:XXXX,fork TCP:1.2.3.4:XXXX
Restart = on-failure
TimeoutSec = 15
[Install]
WantedBy = multi-user.target
其中,使用 -dd
参数可以打印更多日志在 systemd 守护进程中。
- 开启服务自启动:
systemctl enable socat_forward.service
- 运行服务:
systemctl start socat_forward.service
至此,端口转发的守护服务已开始运行。
posted @
2022-09-18 20:34
wx2020
阅读(
3142)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步