【发布时间】:2014-04-04 17:47:50
【问题描述】:
我在 GoDaddy 上购买了一个域名,但使用 Node.js 开发了该网站。所以,我在 VPSGet 上买了一个 VPS 并部署了服务器。我设法将域名链接到 VPS IP 地址。但是,由于我的 node.js 应用程序正在运行一个特定的端口号,我需要进行端口转发,以便 www.domain-name.com 将重定向到 VPS 上的进程和端口。我尝试如下配置我的防火墙
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7497
COMMIT
*filter
# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accept all established inbounds connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow all outbounds traffic
-A OUTPUT -j ACCEPT
# Allow HTTP and HTTPS connections from anywhere. Here, we use normal ports for http and ssl
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allow http connections to node.js app
-A INPUT -p tcp --dport 7497 -j ACCEPT
-A INPUT -p tcp --dport 7525 -j ACCEPT
-A INPUT -p tcp --dport 2368 -j ACCEPT
# Allow forwarding to port 7497
-A FORWARD -p tcp -m tcp --dport 7497 -j ACCEPT
# Allow ports for testing
-A INPUT -p tcp --dport 8080:8099 -j ACCEPT
# Allow ports for mobile shell
-A INPUT -p tcp --dport 60000:61000 -j ACCEPT
# Allow ssh connections
-A INPUT -p tcp -m state --state NEW --dport 7112 -j ACCEPT
# Allow Ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7
# Reject all other outbounds
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
但是,重定向不起作用。有人可以告诉我我做错了什么吗?请注意,我在 VPS 上运行的是 Ubuntu 12.04。 谢谢, 何塞
【问题讨论】:
-
你能运行“ip route list”并验证你的外部接口实际上是“eth0”吗?许多VPS提供商使用虚拟接口。我的使用“venet0”。这与 VPSnet wiki 上的相同。您可能需要调整 REDIRECT 规则以使用正确的接口名称。
标签: node.js ubuntu iptables vps