1

大家好,我目前正在使用 Docker 试验一个 torrent 跟踪器服务器和两个客户端。我的设置是我创建了自己的网络,称为 torrent-net。

docker network create -d bridge noto-network

然后我继续为客户创建三个容器,两个容器,一个使用 ctorrent,另一个是自定义 go 代码。第三个容器安装了 opentracker 服务器。网络配置如下:

Gateway:
  ip_address: 172.18.0.1/16
Opentracker:
  ip_address: 172.18.0.2/16
  announce_port: 6969
GoCode:
  ip_address: 172.18.0.3/16
  torrent_port: 6881
cTorrent
  ip_address: 172.18.0.4/16
  torrent_port: 2706

我启动我的跟踪器和 ctorrent。当我从我的 go 代码向跟踪器发送请求时,我会收到这两个对等点:

- ip: 172.18.0.1
  port: 6881
- ip: 172.18.0.1
  port: 2706

我有两个问题:

  • 这三个容器都在同一个网络中,那么为什么相互通信需要 NAT 呢?
  • 作为客户,我怎么知道这个 NAT IP 是否代表我?这是为了避免试图自言自语。
4

0 回答 0