Linux无法使用SSH远程访问详解
实现Linux远程访问,需要对防火墙关闭,或者对防火墙规则设置;为确保防火墙有一道防火规则,建议步全部关闭防火墙,对防火墙进行规则设置,那规则设置有:端口、ip地址、服务配置。以下详解,手把手教大家配置防火墙。
1. 软件说明:
使用工具:Linux系统是CentOS7.6,虚拟机:VMware® Workstation 14 Pro
2. VMware网络模式:
VMware使用桥连接模式,入下图:
3. 配置防火墙:
3.1 先配置Linux系统ip地址
VMWare网络模式设置为“桥接模式”,Linux系统ip地址要与计算机主机地址同个网段。
#修改以下Linux名称:
[root@mv170 ~]# hostnamectl set-hostname MV172
[root@mv170 ~]# reboot
#linux重启名称修改
[root@mv172 ~]#
#进入ip地址配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33,ip地址设置为192.168.1.172
[root@mv172 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
YPE=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=86817eb1-2d46-404b-a667-495b06540de3
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.172
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=192.168.1.1
DNS2=8.8.8.8
3.2 查看Linux防火墙状态:
[root@mv172 ~]# systemctl status firewalld
也可以用firewall-cmd --state查看防火墙状态:
[root@mv172 ~]# firewall-cmd --state
running
3.3 方法一:直接把防火墙关闭即可。
关闭防火墙服务,最简单粗暴的方法,系统完全暴露在整个网络,同个网段内计算机都可以访问。
# 启动firewalld
service firewalld start
# 停止firewalld
service firewalld stop
# 重启firewalld
service firewalld restart
3.4 方法二: 运用防火墙规则:
防火墙规则就是可以做到对某个ip地址、ip地址段、端口号、端口段进行开放。
# 查询所有规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 新建永久规则,开放8080端口(TCP协议)
firewall-cmd --permanent --add-port=8080/tcp
# 移除上述规则
firewall-cmd --permanent --remove-port=8080/tcp
# 新建永久规则,批量开放一段端口(TCP协议)
firewall-cmd --permanent --add-port=9001-9100/tcp
开放IP地址:
# 新建永久规则,开放192.168.1.1单个源IP的访问
firewall-cmd --permanent --add-source=192.168.1.1
# 新建永久规则,开放192.168.1.0/24整个源IP段的访问
firewall-cmd --permanent --add-source=192.168.1.0/24
# 移除上述规则
firewall-cmd --permanent --remove-source=192.168.1.1
#移除地址段规则:
firewall-cmd --permanent --remove-source=192.168.1.0/24
开放系统服务
# 开放http服务
firewall-cmd --permanent --add-service=http
# 移除上述规则
firewall-cmd --permanent --remove-service=http
自定义规则
# 允许指定IP访问本机8080端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept'
# 允许指定IP段访问本机8080-8090端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept'
# 禁止指定IP访问本机8080端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'
# 移除以上添加操作,将--add-rich-rule 替换成--remove-rich-rule
配置完成后重启防火墙:
systemctl firewalld restart
3.5 设置192.168.1.0/24地址段,打开SSH远程端口是22
# 设置 规则开放192.168.1.0/24
[root@mv173 ~]# firewall-cmd --permanent --add-source=192.168.1.0/24
success
# 设置端口号
[root@mv173 ~]# firewall-cmd --permanent --add-port=22/tcp
success