使用docker-compose安装socat后,同时用两个容器转发&穿透两个端口的方法,演示分别转发openwrt和openclash的dashboard

下面实际上是创建了两个容器

docker-compose.yml

version: '3' # Docker Compose 文件的版本

services:
  socat-openwrt:
    image: alpine/socat # 使用 alpine/socat 镜像
    container_name: socat-proxy-openwrt # 容器名称为 socat-proxy-openwrt
    command: "TCP-LISTEN:3201,reuseaddr,fork TCP:192.168.5.10:80" # 命令设置:监听本地端口 3201 并转发到 192.168.5.10 的 80 端口
    ports:
      - "3201:3201" # 将宿主机的 3201 端口映射到容器的 3201 端口
    restart: always

  socat-openwrt-dashboard:
    image: alpine/socat # 使用 alpine/socat 镜像
    container_name: socat-openwrt-dashboard # 容器名称为 socat-openwrt-dashboard
    command: "TCP-LISTEN:3202,reuseaddr,fork TCP:192.168.5.10:9090" # 命令设置:监听本地端口 3202 并转发到 192.168.5.10 的 9090 端口
    ports:
      - "3202:3202" # 将宿主机的 3202 端口映射到容器的 3202 端口
    restart: always

这个 docker-compose.yml 文件的作用是通过 socat 镜像创建两个服务,用于将宿主机的指定端口流量转发到内网设备的对应端口,实现跨网络的端口映射。具体作用如下:

  1. socat-openwrt 服务

    • 该服务监听宿主机的 3201 端口,将所有接收到的流量转发到内网设备 192.168.5.1080 端口。
    • 这样配置后,用户可以通过访问宿主机的 3201 端口来访问内网设备上的 Web 服务(通常运行在 80 端口)。
  2. socat-openwrt-dashboard 服务

    • 该服务监听宿主机的 3202 端口,将所有接收到的流量转发到内网设备 192.168.5.109090 端口。
    • 配置后,用户可以通过访问宿主机的 3202 端口来访问内网设备的 Dashboard 服务(通常运行在 9090 端口)。

要想让openclash 的 dashboard 能通过 另一台主机 或者 域名访问,你还要在里面这样设置 ,我以局域网内的另一台 192.168.5.250 为例子演示

xoa15fku.3ua.png

然后你就可以访问 dashboard了

xahsl5pg.aj1.png

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

+ 62 = 71