# 机器A 允许转发 echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p # 机器A 建立IPIP隧道 ip tunnel add tunnel1 mode ipip local AIP remote BIP ttl 255 ip addr add 192.168.100.1/30 dev tunnel1 ip link set tunnel1 up # 机器B 建立IPIP隧道 此时可以ping了 ip tunnel add tunnel1 mode ipip local BIP remote AIP ttl 255 ip addr add 192.168.100.2/30 dev tunnel1 ip link set tunnel1 up # 机器B 指定路由 echo '100 ipiprt' >> /etc/iproute2/rt_tables ip rule add from 192.168.100.0/30 table ipiprt ip route add default via 192.168.100.1 table ipiprt # 机器A执行防火墙允许伪装 或 iptables -F 或者 禁用防火墙firewalld firewall-cmd --permanent --add-masquerade firewall-cmd --reload # 机器A 执行代理和转发 iptables -t nat -A POSTROUTING -s 192.168.100.0/30 -j SNAT --to-source AIP # 此时 机器B curl http://www.cpanel.net/showip.cgi --interface 192.168.100.2 可以看到机器A IP iptables -t nat -A PREROUTING -d AIP -j DNAT --to-destination 192.168.100.2 iptables -A FORWARD -d 192.168.100.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
下面是一些辅助工具
1. lsmod|grep ipip可以查看ipip模块是否加载, modprobe ipip立即加载模块
2.转发机器上需要有iptables(centos7已内置不需要含iptables.services是两个) 和 iproute2(centos7已内置)
3.iptables.services和firewalld的各种命令
systemctl start iptables #启动 systemctl status iptables #查看运行状态 systemctl restart iptables.service #重启 systemctl stop iptables.service #停止 systemctl enable iptables.service #设置开机启动 systemctl disable iptables.service #禁止开机启动
systemctl status firewalld systemctl start firewalld systemctl enable firewalld systemctl stop firewalld systemctl disable
4.yum install -y tcpdump 可以用来查看tcp包去向
tcpdump -i eth0 host 192.168.1.1
以上命令大部分会重启后失效,要写入开机启动
最新评论