废话不多说,先通过当前的SSH端口(默认为:22)登陆。
 
1、修改配置文件:/etc/ssh/sshd_config ,找到

#port 22

2、先将Port 22 前面的 # 号去掉,并另起一行。如定义SSH端口号为33322,则输入
Port 33322
自定义端口选择建议在万位的端口(如:10000-65535之间)

也许您会问为什么要先把port 22前面的 # 去掉呢?因为在配置文件中,# 是Linux的注释字符。注释字符后的代码程序是不会执行的。SSH默认的(即非手动指定)端口为22,所以配置文件在默认的情况下以注释字符出现。当需要指定其它端口或多端口同时访问时,就要删掉注释符号,告知程序按照您的意愿来执行响应操作。
以上操作,手动指定SSH端口为22和33322(双端口号),保留22是为了防止个别防火墙屏蔽了其它端口导致无法连接VPS(如没单独指定22,新指定的33322端口防火墙也没放行,那么可能无法通过SSH连接VPS或服务器)。为了防止不必要问题的产生,所以要给自己保留条“后路”。
3、修改完毕后,重启SSH服务,并退出当前连接的SSH端口。(如图)

service sshd restart

4、重启完毕,尝试使用新端口登陆
连接成功,需要重新添加SSH-RSA验证,点击是(或Yes)即可。
5、若能正常访问,返回第一步,根据第二步的操作将原port 22整段注释或删掉,再按第三步重启SSH即可。
以上步骤重启后使用默认22号端口无法进入SSH,达到目的。

【请注意】:

如果您启用了防火墙iptables,那么必须先添加新开的33322端口

补充:iptables开放端口端示例

为了方便举例说明,飘易就直接拿来一段我的现有服务器上运行的防火墙iptables内容。
 
    请注意:后面的注释说明文字:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # (ssh端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # (web端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # (ftp端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT # (ftp被动模式端口范围)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # (mysql端口)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
    修改完防火墙iptables后,需要重新启动:
/etc/init.d/iptables restart

或者
service iptables restart
    注意:iptables配置文件存放位置是:/etc/sysconfig/iptables
    保存命令:service iptables save
    使用命令:iptables -L -n 可以查看当前iptables的开放端口情况。
    iptables服务开机自动启动:
    
chkconfig iptables on

检查iptables服务:
   
# chkconfig --list iptables
  iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

上面开放的端口后面都有注明,有一个要注意的地方,就是FTP端口,FTP的默认端口21肯定要开放,但是一般的ftp软件都是默认先尝试几次被动模式PASV连接,在PASV模式连接失败后,才会进行主动模式PORT连接。
    如果我们仅仅开放21端口,这里就有问题了。FTP PASV模式下,还会随机使用一个空闲端口,这个端口范围在20000-30000之间。所以,我们需要把这个端口范围加入防火墙:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT

关于FTP的PASV被动模式和PORT主动模式的说明:
    FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
    FTP协议有两种工作方式:PORT方式(主动)和PASV方式(被动),中文意思为主动式和被动式。
Port模式:
ftp server:tcp 21 <------client:dynamic
ftp server:tcp 20 ------>client:dynamic
Pasv模式:
ftp server:tcp 21 <----client:dynamic
ftp server:tcp dynamic <----client:dynamic
    port模式和pasv模式区别:
    1、port模式:这种模式的FTP网管人员比较轻松,但兼容性较差,比如假如客户端在局域网内就会无法登录FTP服务器。假如有人无法使用port模式登录FTP的话,作为FTP治理员来说,你无论如何努力都是没有用的。因为这时问题症结在对方客户端的防火墙或网关。所以对于一个FTP服务器来说,尽量要使用pasv模式。
2、pasv模式:这种模式的FTP兼容性好,但对FTP治理员来说有一定挑战性,而且设置的情况比较复杂,以下举例均以有防火墙的情况来说明:
我们仅以服务器在公网上的情况举例:
这是最理想的情况。21端口当然要首先开放,然后再作如下设置:
    windows系统下serv-u服务器:
本地服务器——设置——高级,在"pasv端口端口范围"中填入一段不与其它端口冲突的范围,如3001-3020,然后在防火墙中开放3001-3020的端口。
    Linux系统下PureFTPd服务器:
把端口20000-30000加入到iptables允许端口范围。
    如果你没有设置防火墙允许ftp pasv模式下的端口,那么在客户端使用ftp软件连接服务器的时候,将会出现类似以下的连接过程:
[右] PASV
[右] 227 Entering Passive Mode (42,51,100,50,110,83)
[右] 正在打开数据连接 IP: 42.51.100.50 端口: 28243
[右] 数据 Socket 错误: 没有到主机的通道
[右] 列表 错误
[右] PASV
[右] 227 Entering Passive Mode (42,51,100,50,116,60)
[右] 正在打开数据连接 IP: 42.51.100.50 端口: 29756
[右] 数据 Socket 错误: 没有到主机的通道
[右] 列表 错误
[右] PASV 模式失败,正在尝试 PORT  模式。
[右] 侦听于端口: 16585,正在等候连接。
[右] PORT 192,168,1,6,64,201
[右] 200 PORT command successful
[右] MLSD
[右] 150 Connecting to port 16585
[右] 226-Options: -a -l 
[右] 226 3 matches total
[右] 列表完成: 316 字节 于 0.11 秒 (2.7 KB/秒)
[右] PORT  模式已成功,请更新站点配置文件中的数据连接。
    从上面的ftp返回的信息,我们可以轻易的看出,ftp先进行了2次pasv被动模式连接,由于20000-30000之间的端口范围没有开放,所以pasv模式连接失败,最后进行了port主动模式连接才成功。
    但是正如我们上面所说,ftp port模式兼容性差,假如客户端在局域网内就会无法登录FTP服务器。所以,我们还是应该配置ftp服务器端的pasv被动模式下的端口。

使用iptables开启或关闭指定端口,举例如下:

linux系统下,81端口一般情况下是关闭的。

开启81端口:

代码如下: iptables -I INPUT -i eth0 -p tcp --dport 81 -j ACCEPT
iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j ACCEPT

关闭81端口:

代码如下: iptables -I INPUT -i eth0 -p tcp --dport 81 -j DROP
iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j DROP

ssh 将22端口换为其它 防火墙设置的更多相关文章

  1. Linux下Tomcat端口、进程以及防火墙设置

     Linux下Tomcat端口.进程以及防火墙设置 1,查看tomcat进程: #ps -aux | grep tomcat(或者ps -ef | grep tomcat都行) 可以看到现在运行着两个 ...

  2. LINUX 修改SSH默认22端口的方法

    首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,修改为如下: Port 22 Port 50000 然后保存退出 执行/etc/ ...

  3. linux服务器修改ssh默认22端口方法

    1.登录服务器,打开sshd_config文件 # vim /etc/ssh/sshd_config 2.找到#Port 22,默认是注释掉的,先把前面的#号去掉,再插入一行设置成你想要的端口号,注意 ...

  4. 修改ssh的22端口

    将ssh22端口修改为12345 https://www.cnblogs.com/chen-lhx/p/3974605.html # iptables开放12345端口iptables -I INPU ...

  5. Linux(例如CentOS 7)打开TCP 22端口,基于SSH协议

    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专 ...

  6. ssh更改默认端口号及实现免密码远程登陆

    近来在复习防火墙管理工具 iptables 的基本使用方法,涉及到对端口添加或删除防火墙策略的内容,之前对ssh更改默认端口号及免密码登录的方法不熟悉,这次做一个基本的总结防止自己遗忘. 错误偏差及其 ...

  7. centos 7 已经开启 22 端口但无法连接

    已经开启 22 端口但无法连接 刚买的 vps ,默认 ssh 端口是 29488, 使用以下方式连接ssh -p 29488 root@x.x.x.x觉得加端口有点麻烦, 希望使用默认的 22 端口 ...

  8. 流量操控之SSH隧道与端口转发

    目  录 第1章            概述... 3 1.1.         实现命令... 3 1.2.         SSH隧道类型... 3 第2章            SSH隧道... ...

  9. Linux防火墙设置——iptables

    防火墙用于监控往来流量,并根据用户定义的规则来过滤数据包以保证安全.iptables是Linux下设置防火墙规则的常用工具,它可以让你设置.维护以及查看防火墙的规则表.你可以定义多个表,每个表可以包含 ...

随机推荐

  1. k8s部署spring-boot项目失败

    现象:spring-boot项目启动到某个地方停止,然后容器重启 解决:扩大内存和核心数

  2. Echars折线配置详解

    Echars折线配置详解 比如做成如下效果图: 所有的配置如下: var option = { tooltip: { // 提示框 trigger: 'axis', // 触发类型(坐标轴触发) al ...

  3. Android学习之基础知识十四 — Android特色开发之基于位置的服务

    一.基于位置的服务简介 LBS:基于位置的服务.随着移动互联网的兴起,这个技术在最近的几年里十分火爆.其实它本身并不是什么时髦的技术,主要的工作原理就是利用无线电通讯网络或GPS等定位方式来确定出移动 ...

  4. Java实现对象的序列化

    什么是对象的序列化? 序列化:把对象转化成字节序列的过程就是对象的序列化:反序列化:把字节序列转化成对象的过程就是对象的反序列化.单看概念比较抽象,但是看代码就会明白. 对象序列化的用途 1.Java ...

  5. 动手动脑(lesson 3)

    一· 答:本质上一样,但在内存分配时有区别.如下图: 二· 程序运行结果截图: 答案截图: 三· 四· 答:构造函数与参数个数不匹配. 五· 运行结果截图: 总结:所有类的变量都默认初始化为null, ...

  6. xrange 和range的区别

    >>> xrange(5)xrange(5)>>> list(xrange(5))[0, 1, 2, 3, 4]>>> xrange(1,5)xr ...

  7. C++11 并发指南三(std::mutex 详解)

    上一篇<C++11 并发指南二(std::thread 详解)>中主要讲到了 std::thread 的一些用法,并给出了两个小例子,本文将介绍 std::mutex 的用法. Mutex ...

  8. SQL查询今天、昨天、7天内、30天 - 转

    今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where ...

  9. LiveCharts文档-4基本绘图-1基本线条图

    原文:LiveCharts文档-4基本绘图-1基本线条图 4基本绘图-1基本线条图 using System; using System.Windows.Forms; using System.Win ...

  10. el标签将时间戳转换为特定格式以及将数值保留特定小数

    jsp中/el表达式中将后台传来的时间戳格式化为年月日时分秒 1.引入相关标签库 <%@taglib prefix="c" uri="http://java.sun ...