一、原因

远程(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

Xshell(远程)连接不上linux服务器(防火墙介绍)的更多相关文章

  1. ssh远程连接不上linux

    远程连接工具是:Xmanager Enterprise 5-->Xshell linux 发行版本是:CentOS-6.3-x86_64 问题:ssh一直都可以远程连接上linux,一段时间后突 ...

  2. 远程连接你的linux服务器

    为什么要远程连接linux 在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到服务器本体了,只能通过远 ...

  3. navicat连接不上Linux服务器上的MySQL

    1.首先确定你的linux已经关闭防火墙 详细操作点这里: 如果是公司服务器防火墙比较重要不能关闭,那就麻烦点了,需要在防火墙的配置文件下配置属性. 如果还不能解决,请继续往下看. 2.如果是云服务器 ...

  4. VNC远程连接阿里云Linux服务器 图形界面

    VNC 简介: VNC,全称:Virtual Network Computing,即虚拟网络计算机:分客户端和服务端,即VNC Viewer和VNC Server.它是一款远程控制的软件,一般用于远程 ...

  5. 问题1-xshell远程连接不上linux主机

    在其他主机上搭建linux系统,我们一般通过xshell工具去远程访问该主机,这样不仅可以方便我们的对系统或者集群进行管理也方便了我们的操作,但是在搭建好环境的时候遇到如下问题: 解决方案:1.关闭目 ...

  6. navicat连接不上Linux服务器上的mysql的解决办法

    一开始,心情是沉痛的,截图如下: 转载请注明出处:https://www.cnblogs.com/NaughtyCat/p/how-to-connect-to-mysql-on-linux-by-na ...

  7. 其他综合-使用Xshell远程连接管理Linux实践

    使用Xshell远程连接管理Linux实践 1. Xshell整体优化 1)点击 工具 ,然后选择 选项 2)在 常规 选项中,下面的存放路径根据个人爱好修改(可选默认) 3)在 更新 选项中,将 √ ...

  8. 虚拟机virtualBox安装linux系统 xshell远程连接linux

    虚拟机virtualBox安装linux系统 xshell远程连接linux 虚拟机概念: 通过软件, 使用虚拟化技术虚拟出电脑的硬件环境, 充当真实的电脑使用. 常见的虚拟软件: virtualBo ...

  9. Linux学习总结(三)之 putty,xshell远程连接及密钥认证篇

     一:putty 下载 1:认准两个地方 a. Download putty b. chiark greenend 2:下载32位的zip包,这是一个工具包合集,不单是一个终端工具 二:putty设置 ...

随机推荐

  1. pthread_create函数

    函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int pthread_create(pthread_t *re ...

  2. 前端 Web 异常监控系统 All In One

    前端 Web 异常监控系统 All In One Sentry https://sentry.io trackjs https://trackjs.com/ rollbar https://rollb ...

  3. 微软 AI 公开课

    微软 AI 公开课 https://github.com/microsoft/ai-edu https://school.azure.cn/ https://docs.microsoft.com/le ...

  4. webpack async load modules & dynamic code splitting

    webpack async load modules & dynamic code splitting webpack 按需/异步加载/Code Splitting webpack loade ...

  5. taro & Error: spawn taro ENOENT

    taro & Error: spawn taro ENOENT https://stackoverflow.com/questions/27688804/how-do-i-debug-erro ...

  6. js 获取包含emoji的字符串的长度

    let emoji_exp = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ ...

  7. [转]ROS Q&A | How to read LaserScan data

    http://www.theconstructsim.com/read-laserscan-data/ Step 1. Open a project on ROS Development Studio ...

  8. 图像仿射变换——MatLab代码实现

    这里先说一下我们的目的,最近在用Pix2Pix 做一个项目的时候,遇到了成对图像质量差,存在着特征不能对齐的问题,即A图与B图是一组成对图像,我们想要将A 图中的物体转化为B 图中的物体,但这个物体在 ...

  9. sql语句的练习,已练习的会以绿色标注!!!

    表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师 ...

  10. Element-UI远程搜索功能详解

    官方代码: <template> <div> <el-autocomplete v-model="state" :fetch-suggestions= ...