起因
最近在看firewall-cmd 方面的知识,所以这篇文章算的上一个小的实验,练习以下自己学的东西,没什么技术含量(我是菜鸡…)。
准备
1 2 3 4
| Os: centos7 soft: firewall-cmd user: root vmware15 centos7(实际上可以替换为国内中转机器)
|
开始吧
准备工作:
一般来说,我们的Centos7 都会默认安装 firewall-cmd ,下列命令查看是否安装
1 2
| firewall-cmd --version # 0.6.3
|
咩有返回版本信息,说明咩有安装,我们安装即可(这个是命令行版本的firewall )
1
| yum install firewalld -y
|
开启防火墙
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| systemctl status firewalld.service # 返回信息中有 active 表明firewall 已运行,如果没有,请看接下来的操作 Active: active (running) since Mon 2019-10-14 16:48:34 CST; 6h ago
# 开机启动防火墙 systemctl enable firewalld
# 开启防火墙 # 默认开了ssh的服务,不用担心 firewall会阻断ssh连接 systemctl start firewalld 开启流量转发 # firewall 的默认区域是 public,可以查看firewall的激活区域 firewall-cmd --get-active-zones public interfaces: ens33
|
开启ip伪装,名字好怪
1 2
| firewall-cmd --permanent --zone=public --add-masquerade # success
|
开启流量转发
1 2 3 4 5 6 7 8
| firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=1080:toaddr=1.1.1.1 success # 注意替换为自己的配置 # port: 代表你国内的机器的port # proto: 代表你要转发的协议,一般都是tcp # toport: 代表你要连接的国外vps # toaddr: 代表你vps的ip # --permanent 为永久配置,必须加上
|
彻底重启fireall,让我们的设置生效
1 2
| firewall-cmd --complete-reload # success
|
查看我们的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: dhcpv6-client ssh ports: protocols: masquerade: yes forward-ports: port=22:proto=tcp:toport=1080:toaddr=1.1.1.1 # 可以看到这里已经生效了 source-ports: icmp-blocks: rich rules:
|
配置本地的科学服务端
只需要把原来的vps的ip替换为国内服务器的ip,并且端口设置为我们国内服务器的端口即可。
多说一句,像阿里云这种,我们还需要在控制面版放行我们刚才设置的国内服务器的端口