已知主机A,在 6666/tcp 端口上有服务器软件在监听,但是只有主机B可以访问
已知主机B,运行有 socks5 Server 代理服务器,他与A可以直接通信,也可以与C通信
已知主机C,他需要对外提供主机A上的 6666/tcp 服务!也就是说需要主机C监听 6666/tcp 端口来接受客户端访问,同时主机C将客户端请求通过主机B的 socks5 代理将实际业务转发到A上。
请教这个问题,只能动主机C,如何解决!
关于通过 socks5 代理某 tcp 服务的问题
-
- 帖子: 304
- 注册时间: 2011-01-02 12:31
- astolia
- 论坛版主
- 帖子: 6514
- 注册时间: 2008-09-18 13:11
Re: 关于通过 socks5 代理某 tcp 服务的问题
这个需求,倒是很适合用某v2软件,核心配置如下
如果你不知道我说的是什么软件,自行用配置里面出现的不常见的关键字去搜。说得太明白,这帖就要进小黑屋了
代码: 全选
{
"inbounds": [{
"listen": "0.0.0.0",
"port": 6666,
"protocol": "dokodemo-door",
"settings": {
"address": "主机A",
"port": 6666
}
}],
"outbounds": [{
"protocol": "socks",
"settings": {
"servers": [{
"address": "主机B",
"port": 代理端口
}]
}
}]
}
-
- 帖子: 304
- 注册时间: 2011-01-02 12:31
Re: 关于通过 socks5 代理某 tcp 服务的问题
非常感谢你提供的软件和思路!astolia 写了: ↑2021-10-31 15:09 这个需求,倒是很适合用某v2软件,核心配置如下如果你不知道我说的是什么软件,自行用配置里面出现的不常见的关键字去搜。说得太明白,这帖就要进小黑屋了代码: 全选
{ "inbounds": [{ "listen": "0.0.0.0", "port": 6666, "protocol": "dokodemo-door", "settings": { "address": "主机A", "port": 6666 } }], "outbounds": [{ "protocol": "socks", "settings": { "servers": [{ "address": "主机B", "port": 代理端口 }] } }] }
不过我实在等不及,也没辙了,发现 socat 可以解决这个问题,不过软件仓库提供的 socat 版本不支持 socks5 ,只能支持 socks4 ,于是乎只好把 socks5 服务器换成了 http proxy 服务器,然后用 socat TCP4-LISTEN:<本地端口>,reuseaddr,fork PROXY:<代理服务器IP>:<远程地址>:<远程端口>,proxyport=<代理服务器端口> 就愉快的解决了。
你说的这个软件用过,不过没能想你这样深入研究过这些高级功能,回头得多向你学习学习。
- astolia
- 论坛版主
- 帖子: 6514
- 注册时间: 2008-09-18 13:11
Re: 关于通过 socks5 代理某 tcp 服务的问题
你这是动了主机B啊,和你一楼说的可不一样。如果能动主机B,直接给主机B和C上设置防火墙转发规则就成了,什么软件都不用装
-
- 帖子: 304
- 注册时间: 2011-01-02 12:31