宿主机的 socks5 假设是 40000 端口
目前解法是 docker run --network host ,但是这样变成所有端口映射了,不是想要的解法
如果 docker run -p 40000:40000 ,又会提示宿主机该端口占用
1
Andim 2023-06-20 16:23:46 +08:00
|
2
FreeEx 2023-06-20 16:34:26 +08:00
docker run --add-host=host.docker.internal:宿主机 IP
你在容器里面访问 host.docker.internal 即可。 |
3
FreeEx 2023-06-20 16:35:40 +08:00
--add-host=host.docker.internal:host-gateway
搞错了,是这个命令 |
4
ETiV 2023-06-20 16:39:23 +08:00 via iPhone
docker 容器内的 Gateway IP 就是宿主,你可以手动创建 network 把这 IP 固定一下
(看到是 40000 )如果这 socks5 服务监听在 127.0.0.1 上不好使… |
6
ETiV 2023-06-20 16:47:46 +08:00
那你可以在 host 上开一个 nginx 做 steam 的反向代理,把 127.1 的 40000 暴露给 docker network 的 gateway IP 上…
|
7
villivateur 2023-06-20 16:58:18 +08:00
docker 内为啥一定要访问 127.0.0.1 呢,不能指定 ip 地址吗?
|
8
Andim 2023-06-20 17:00:23 +08:00 via iPhone 1
@villivateur 他可能是要用 Warp
|
9
zhanghua0 2023-06-20 17:12:52 +08:00 via Android
宿主机的服务需要监听来自局域网的连接并且防火墙放行端口,容器需要把地址改成宿主在容器网络的地址
不想这么麻烦就 --network=host 让容器使用宿主机的网络 |
10
BeautifulSoap 2023-06-20 17:17:26 +08:00
内啥,3L 都把标准答案写出了
|
11
estk OP |
12
estk OP @FreeEx #3
设置了 --add-host=host.docker.internal:host-gateway -p 50000:40000 然后 docker 里访问 host.docker.internal:50000 ,依然不行 不知道是不是 socks5 无法通过 host-gateway:40000 访问 这个我自己再研究看看 |
13
chenjia404 2023-06-22 15:52:40 +08:00
一个简单的方法,你宿主机的 socks5 服务监听局域网 ip ,例如 192.168.1.23:40000 ,然后在 docker 容器内访问 192.168.1.23:40000 。
|
14
BeautifulSoap 2023-06-23 00:43:29 +08:00 via Android
@estk 那个,你首先得确保,你宿主跑的服务是监听了的 0.0.0.0:5000 地址而不是 127.0.0.1:5000
|
15
BeautifulSoap 2023-06-23 00:44:11 +08:00 via Android
打错端口了是 4000 端口,不过意思到了就行
|
16
estk OP |