我尝试在家里为我的 pi 设置一个 nginx 服务器。问题是,动态更新需要很长时间。因此我无法访问我的 gitolite 服务器。
因此,我没有使用 dyndns,而是设置了一个 ec2 实例。进入我的域的每个流量都将使用此 ec2 IP。从那里,我使用 nginx 来调节我的 pi 的流量。我让它在 http 和 https 服务器上运行得很好。我还可以为我的 ssh 设置一个流服务器。现在问题来了。据我所知,ssh 协议没有给出 dns。好吧,我不是系统管理员,所以也许我使用的术语不正确。
我在我的 pi 中安装了fail2ban。每个 ssh 流量都使用相同的 ip 通过 nginx 服务器。然后当它被fail2ban阻止时。我根本无法访问它们。
对于那些想要使用 nginx 的人。我不推荐,但这是有效的。
stream {
upstream ssh {
server xx.xxx.xxx.xxx:22;
}
server {
listen 22;
proxy_pass ssh;
}
upstream ssh {
server xx.xxx.xxx.xxx:2288;
}
server {
listen 2288;
proxy_pass ssh;
}
}
我猜这仅适用于 nginx ^1.2。
我尝试了所有可能的配置:
# proxy_bind $remote_addr:$remote_port transparent;
# proxy_bind $remote_addr transparent;
# proxy_set_header Host $host;
# proxy_protocol on;
他们都没有通过ip。也许有人知道配置有什么问题?
我还阅读了一些使用 iptables 的建议。然后我尝试了以下所有方法:
#iptables -t nat -I PREROUTING -p tcp -i eth4 --dport 22 -j DNAT --to xx.xxx.xxx.xxx:22
#iptables -A FORWARD -i eth4 -o eth1 -p tcp --dport 22 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 22 -j DNAT --to-destination xx.xxx.xxx.xxx
#iptables -A FORWARD -p tcp -d xx.xxx.xxx.xxx --dport 22 -m state --state NEW,ESTABLISHED,RELAT$
#iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination xx.xxx.xxx.xxx:2244
#iptables -A FORWARD -m state -p tcp -d xx.xxx.xxx.xxx --dport 22 --state NEW,ESTABLISHED,RELAT$
#iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination xx.xxx.xxx.xxx:2244
我不确定为什么它不起作用。 -i eth4 -o eth1 我猜这是网络,不是吗,包括 ppp0?我的pi只有一个eth0。
有人可以告诉我,这里有什么问题吗?我可以使用同一个端口进出吗?或者它必须是不同的端口?有关 iptables 配置的一些解释会很有帮助。
谢谢你!