我有一台 ubuntu 13.10 服务器和一个注册域名。我的 192.168.24.1 机器上有一个 Web 服务器,我的 192.168.24.2 上有一个 ftp 服务器。
使用 iptables 我想要:
1) 写作的人:http://我的域名.com重定向至 192.168.24.1
2)想要使用我的 ftp(filezilla 或输入 mydomainname 的程序)的人被重定向到 192.168.24.2
提前感谢您的回答!
答案1
我无法给出确切的答案,因为我不知道你的拓扑结构
情况1。
__________________
| |
| PC |-------|
| 192.168.24.1 | | _____________
------------------ |_____| | __________
| | ip_tables | | |
| | PC |--| router |--- internet
__________________ | | | | |
| | | ------------- ----------
| PC |-------|
| 192.168.24.2 |
------------------
在这个拓扑中你需要 iptables
案例 2。
__________________
| |
| PC |-------|
| 192.168.24.1 | |
------------------ | __________
| | |
|--| router |
__________________ | | |
| | | ----------
| PC |-------|
| 192.168.24.2 |
------------------
您不需要 iptables。您需要在路由器上进行端口转发。
- 端口 80 用于 http -> 24.1
- 端口 443 用于 https -> 24.1
- 端口 20 是 FTP 数据传输 -> 24.2
- 端口 21 FTP 控制 -> 24.2
此外,您必须在路由器的 WAN 接口上固定公共 IP 地址。然后您必须创建 DNS 记录。DNS 将逻辑名称(又名 mydomainname.com)解析为 IP 地址,并将 IP 地址解析为逻辑名称。
192.168.xx 范围是私有 IP 地址范围,我无法通过互联网成为路由器。
交通流量为:
- 我在电脑的浏览器中输入 mydomainname.com
- PC 请求 DNS 将 mydomainname.com 解析为 ip
- 当 PC 有 IP 时,向给定 IP 发送 http/https 请求
- Web 服务器应答并将流量发送给请求者
IP地址规划:
PC [private ip}
-> router with private address on LAN and public ip on WAN. Router do NAT
->internet [only public ip address
编辑2
如果你的服务器通过 24.1 为 24.2 进行 nat,则休闲将起作用
首先要启用 IP 转发。可以使用
echo "1" > /proc/sys/net/ipv4/ip_forward
或者
sysctl net.ipv4.ip_forward=1
然后,我们将添加一条规则,告诉将端口 21 上的流量转发到端口 21 上的 IP 192.168.24.2
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 192.168.24.2:21
然后,我们将添加一条规则,告诉将端口 20 上的流量转发到端口 20 上的 IP 192.168.24.2
iptables -t nat -A PREROUTING -p tcp --dport 20 -j DNAT --to-destination 192.168.24.2:20
最后,我们要求 IPtables 进行伪装
iptables -t nat -A POSTROUTING -j MASQUERADE