大家好,我目前正在使用 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 是否代表我?这是为了避免试图自言自语。