server1有一个私人和公共IP。 server2有一个私人和公共IP。
一般..如果server1 ssh到server2 .. server2将通过它的公共ip识别server1。
但是因为两台服务器都是一样的公司..我想他们已经configuration它使用“私人IP”时,互相之间的ssh。
我从服务器2连接到server1,然后检查,看看我的IP(服务器2),我注意到它不是server2的公共IP,而是私人IP的server2。
我想禁用此function..我想服务器只能通过其公共的IP进行通信..
如何缓解这个问题?
连接到其他服务器时应指定公共IP地址。
如果你的服务器是这样configuration的:
Server1: 192.168.0.1 (private), 12.34.56.1 (public) Server2: 192.168.0.2 (private), 12.34.56.2 (public)
您应该使用从server1连接到server2
ssh 12.34.56.2
这将确保使用公共networking进行连接。
如果要通过名称( ssh server2 )引用服务器,并且希望名称自动映射到服务器的公用IP地址,则应在两台服务器的hosts文件中添加条目,告诉它们的名称将被映射到他们的公共IP:
12.34.56.1 Server1 12.34.56.2 Server2
如果你真的想确保你只通过公共接口进行通信,那么ssh服务器只能监听公共接口上的连接。 假设你正在使用openssh或者某个变种,打开你的/ etc / ssh / sshd_config(这是它的通用path)并添加:
ListenAddress <your.public.ip.address>
如果你有这样的线:
ListenAddress :: ListenAddress 0.0.0.0
评论他们(你可能已经注意到他们,因为我相信所有的接口是默认的)
然后按照Massimo的build议使用正确的IP地址和/或主机条目。