zoukankan      html  css  js  c++  java
  • Xshell(远程)连接不上linux服务器(防火墙介绍)

    一、原因

    远程(ssh)连接不上linux服务器的大多数原因都是因为本地服务器的防火墙策略导致的,因此我们想ssh远程能够连接上服务器,有两种方法:

    1. 修改防火墙策略
    2. 关闭防火墙

    二、防火墙服务介绍

    1.CentOS7常用的防火墙有:iptables 与 firewalld

    2.但需要注意的是:iptables 与 firewalld 都不是真正的防火墙, 它们都只是用来定义防火墙策略的防火墙管理工具,是一种服务。

    3.Centos 7默认使用的是firewalld,而实际上iptables与firewalld只是单纯的配置规则的客户端工具,而真正起到防火墙作用(过滤/转发等功能)是内核netfilter模块。如果需要改用iptables的话,需要安装iptables服务:

    yum install iptables-services 
    systemctl start iptables  # 开启防火墙
    systemctl enable iptables  # 设置开机启动防火墙
    systemctl stop iptables  # 关闭防火墙
    systemctl disable iptables  # 设置禁止开机启动防火墙

    4.firewalld与iptables的不同

    1. firewalld 使用区域和服务而不是链式规则。
    2. firewalld 可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。

    iptables 服务在 /etc/sysconfig/iptables 中储存配置,而 FirewallD 将配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里,使用 iptables 的时候每一个单独更改意味着清除所有旧有的规则和从 /etc/sysconfig/iptables 里读取所有新的规则,使用 firewalld 却不会再创建任何新的规则;仅仅运行规则中的不同。因此 FirewallD 可以在运行时改变设置而不丢失现行配置。

    FirewallD的配置方法主要有三种:

    1. firewall-config
    2. firewall-cmd
    3. 直接编辑xml文件

    其中 firewall-config是图形化工具,firewall-cmd是命令行工具,而对于linux来说大家应该更习惯使用命令行方式的操作,所以 firewall-config(适合用于桌面版)

    5.图示

    三、具体操作实例

    我的linux服务器的发行版本是CentOS7版本。

    1、修改防火墙策略

    修改防火墙策略,目的是为了开启22端口,因为ssh远程的端口就是22

    这里进行修改是指直接用客户机登录进服务器进行操作,而不是直接xshell连接,因为22端口没开之前,xshell是连接不上的

    1.ifconfig  # 查看ip网卡信息,记住eth0,eth1对应哪个ip地址
    root@aliyunzbj /tmp o ifconfig
    eth0: flags=2256<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.10.53  netmask 255.255.255.0  broadcast 192.168.10.255
            ...
    
    eth1: flags=2257<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.26.66  netmask 255.255.255.0  broadcast 192.168.26.255
            ...
    
    lo: flags=82<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.255.255.0
            ...
    
    2.查看当前的iptables防火墙配置
    root@aliyunzbj /tmp o iptables-save
    
    ...
    -A INPUT -i lo -j ACCEPT
    -A INPUT -i eth0 -j MANAGE-INPUT  # MANAGE-INPUT代表eth0网卡的防火墙策略
    -A INPUT -i eth1 -j USER-INPUT  # USER-INPUT代表eth1网卡的防火墙策略
    ...
    # 这里可以看到MANAGE-INPUT即eth0网卡开启了22端口,但是下面的策略并没有看到USER-INPUT(eth1)开启22端口
    -A MANAGE-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    ...
    
    
    3.给网卡eth1添加22端口
    # 可以直接复制上面的策略,把MANAGE-INPUT改成USER-INPUT即可(如果eth0也没有开启,那么只需要把USER-INPUT改成MANAGE-INPUT再配置一次这个命令即可)
    root@aliyunzbj /tmp o iptables -A USER-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    
    4.再次查看策略
    root@aliyunzbj /tmp o iptables-save
    
    ...
    -A INPUT -i lo -j ACCEPT
    -A INPUT -i eth0 -j MANAGE-INPUT  # MANAGE-INPUT代表eth0网卡的防火墙策略
    -A INPUT -i eth1 -j USER-INPUT  # USER-INPUT代表eth1网卡的防火墙策略
    ...
    -A MANAGE-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A USER-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    ...

    5.也可以把上面新增的策略直接添加到 /etc/sysconfig/iptables,重启iptables服务

    2、关闭防火墙

    最直接的方法就是直接把防火墙策略关了

    1.查看防火墙状态
    systemctl status iptables.service
    
    2.如果防火墙开启了,那么直接关闭
    systemctl stop iptables.service
  • 相关阅读:
    Spring.NET学习笔记(4)对象作用域和类型转换
    spring 依赖注入有什么好处
    加入收藏和设为主页js代码
    hdoj_1027_code
    【C#.NET】ASP.NET状态管理之一:Cookie
    【C#.NET】自定义“验证码”控件(转)
    【C#.NET】C#六种集合性能比较
    【C#.NET】特性和属性
    【C#.NET】ASP.NET 2.0 数据绑定概述(转)
    【C#.NET】ASP.NET状态管理之三:Application
  • 原文地址:https://www.cnblogs.com/Zzbj/p/12797393.html
Copyright © 2011-2022 走看看