我试图设置史翠珊在 DigitalOcean droplet 上有一个指向它的浮动 ip,因为 droplet 的主 ip 在我的国家被屏蔽了。问题出在sslh
服务上。sslh
配置包含listen
参数,host
通常指向服务器的实际 ip 地址。sslh
监听该主机上的所有流量,解析协议并将其路由到 上的相应端口localhost
。nginx
以及其他服务,如openvpn
绑定到 上的端口localhost
。
现在我有两个 IP:实际服务器的 IPip1
和 DigitalOcean 上的浮动 IP ip2
,它们指向同一个服务器。sslh
正在监听ip1
。
据我了解,当我尝试访问时,ip2
sslh
无法获取数据包并对其进行路由,因为它们实际上到达ip2
并被 DigitalOcean 的机器转发到我的服务器,同时sslh
正在监听ip1
。我尝试设置sslh
监听,ip2
但没有成功。请求ip1
工作正常(我使用了不在我国家/地区的另一台服务器进行测试)。
我可能缺乏底层网络和浮动 IP 工作原理的知识。我想我可以以某种方式修改所有传入数据包,使它们包含有关 的元信息,ip1
但我认为这会破坏https
。所以问题是:我如何设置sslh
路由来自浮动 IP 的流量?