首页
统计
留言板
友接
推荐
免费图床
服务监控
Search
1
immich开源相册部署教程
744 阅读
2
GraalVM将Java打包原生Native应用
318 阅读
3
将旧手机改造成Linux服务器
273 阅读
4
Java函数式编程
180 阅读
5
FRP内网穿透教程
161 阅读
编程语言
Java
Python
Go
单片机
Arduino
ESP8266
ESP32
STM32
51单片机
树莓派
运维
Docker容器
随身小记
登录
Search
标签搜索
Spring
SpringMVC
Java
docker
DSM
群晖
iptables
ssh
spring
mybaits
redis
SpringBoot
消息队列
科长
累计撰写
36
篇文章
累计收到
6
条评论
首页
栏目
编程语言
Java
Python
Go
单片机
Arduino
ESP8266
ESP32
STM32
51单片机
树莓派
运维
Docker容器
随身小记
页面
统计
留言板
友接
推荐
免费图床
服务监控
搜索到
1
篇与
iptables
的结果
iptables之网络地址转换SNAT
2023年07月04日
85 阅读
0 评论
0 点赞
2023-07-04
源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。模拟环境可以访问互联网master:192.168.2.100/10.0.10.4不可以访问互联网node1:10.0.10.2node2:10.0.10.3需求:现在想要node1和node2能够访问需联网根据上图中的网络环境可以得知:内网不能上网的IP段为10.0.10.0/24能够上网的机器拥有双网卡,它的出口IP为192.168.2.100能够上网额机器可以与10.0.10.2/10.0.10.3互相访问实现上网:现在需要10.0.10.0/24这个IP段的所有机器能够使用的特定的IP192.168.2.100实现访问互联网在master机器上安装iptables防火墙# 关闭自带的firewalld systemctl stop firewalld systemctl disable firewalld # 安装iptables yum -y install iptables iptables-services systemctl start iptables systemctl enable iptables在master机器上开启路由转发功能vim /etc/sysctl.conf net.ipv4.ip_forward = 1 # 将此行写入配置文件 sysctl -p # 验证一下清除iptables的所有规则iptables -F iptables -F -t nat iptables -nL -t nat添加新的snat规则iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to 192.168.2.100这个规则表示:当流量来自10.0.10.*的IP时,则需在出口路由设备上需要配置源地址转换,转换成192.168.2.100如果我们的出口IP192.168.2.100是动态的,我们可以将转发绑定到网卡上iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o ens33 -j MASQUERADEens33 是master能够访问互联网的网卡,需要改成自己实际的网卡配置node节点上网我们需要分别设置node1:10.0.10.2/node2:10.0.10.3这台机器的网络配置[root@node1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="90f3297d-0600-4d78-8c98-b7823d4b8e22" DEVICE="ens33" ONBOOT="yes" IPADDR=10.0.10.2 # node1的IP地址 GATEWAY=10.0.10.4 # master的内网IP NETMASK=255.255.255.0 DNS1=114.114.114.114[root@node2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="90f3397d-0600-6d97-8c18-b7323d4b8e19" DEVICE="ens33" ONBOOT="yes" IPADDR=10.0.10.3 # node1的IP地址 GATEWAY=10.0.10.4 # master的内网IP NETMASK=255.255.255.0 DNS1=114.114.114.114可以通过ping baidu.com 进行网络验证网速优化# vi /etc/sysctl.conf net.ipv4.ip_conntrack_max = 1048576 # vi /etc/modprobe.conf options ip_conntrack hashsize=131072 iptables -I INPUT -p udp --sport 53 -j ACCEPT iptables -I INPUT -p tcp --sport 53 -j ACCEPT导入导出规则#将iptables规则文件保存在 /etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则 iptables-save > /etc/sysconfig/iptables # 停止iptables服务会清空掉所有表的规则 systemctl stop iptables # 启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则 systemctl start iptables