我没有路由器,所以我让Linux系统进入路由器有centos 6.4转发公共networkingstream量到我的本地LAN.It有两个NIC卡。 一个用于公共ip(eth1),另一个用于私有ip(eth2)。
我有一个服务器连接到我的本地局域网假设192.168.1.2。
xxxx是公网ip(这个ip在eth1上)。
Linux系统路由器IP假设192.168.1.1(这个IP是在eth2上)
我希望当任何地方的任何networking的人使用这个ie
ssh xx.xx(公共IP)或使用腻子
它会去服务器。
我禁用服务器上的Selinux和iptables防火墙
我在Linux系统路由器上做了一些Iptables修改,但是它自己作为路由器工作,而不是从其他networking和同一networking的主服务器。
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 22 -j DNAT --to-destination 192.168.1.2:22
但不行。
再次我想转发所有HTTP(80)stream量到我的内部服务器使用iptables从相同的Linux系统路由器。
我需要这个好心的给我解决这个问题。
首先确保在内核中启用了数据包转发
# echo 1 > /proc/sys/net/ipv4/ip_forward
您也可以通过在/etc/sysctl.conf添加以下行来使其成为永久的
net.ipv4.ip_forward = 1
您必须在Linux机器上充当路由器。 您可以在路由器机器上尝试以下规则。
iptables -t nat -A PREROUTING -i eth1 -d xxxx -p tcp --dport 22 -j DNAT --to-destination 192.168.1.2:22
也让我们知道从路由器的NAT规则的输出。
iptables -t nat -L -n -v
基于这个惊人的DigitalOcean关于如何转发端口的教程,我决定在这里重新编写它。
我花了很多小时的研究如何工作..我是新来的Linux和开始并不总是很容易..这里是我的服务器的例子,它的端口转发:
防火墙服务器(2个NIC卡) – networking详细信息:
内部 (例如ssh,web)服务器(1个NIC卡) – networking详细信息:
解:
在内核中启用数据包转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
定义variables:
# Admin IP address (eg public home ip) ADMIN="aa.aa.aa.aa" # IP addresses of servers (eg in cloud): FW_eth0_ip="xx.xx.xx.xx" FW_eth1_ip="yy.yy.yy.yy" WEB_eth0_ip="zz.zz.zz.zz" # Services: SSH="22" HTTP="80"
Iptables端口转发(使用-m conntrack):
iptables -t nat -A PREROUTING -i eth0 -s $ADMIN -d $FW_eth0_ip -p tcp --dport $SSH -j DNAT --to-destination $WEB_eth0_ip iptables -A FORWARD -i eth0 -o eth1 -p tcp --syn --dport $SSH -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport $SSH -m conntrack --ctstate ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport $SSH -m conntrack --ctstate ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport $SSH -d $WEB_eth0_ip -j SNAT --to-source $FW_eth1_ip
几个注意事项:
终奌站:
# access firewall server $ ssh [email protected] -p 15xx1 # access internal server $ ssh [email protected] -p 15xx2
所提到的教程中详细介绍了有关使用规则的更多细节。
这一切都来自我,希望它会帮助你。
首先,在linux网关中启用路由:
echo 1 > /proc/sys/net/ipv4/ip_forward
然后添加以下规则:
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.2 iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 22 -j DNAT --to 192.168.1.2 iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -m state --state NEW,ESTABLISHED,RELATED-j ACCEPT iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
用iptables -L -v检查你的规则,pkts和bytes列会告诉你哪些规则被匹配。