解决阿里云ssh: connect to host xxxxx port 22: Connection timed out

解决阿里云ssh: connect to host xxxxx port 22: Connection timed out,第1张

今儿在阿里云买了一年的ECS服务,准备用ssh远程连接,因为受不了在网站上的控制台。

结果每次我尝试 ssh root@xxxxxxxxx 的时候,总显示 ssh: connect to host xxxxx port 22: Connection timed out

宛如一个智障

1、在确定我本机防火墙关闭后

2、确定ECS服务器的安全组规则允许 我就错在这

就这样搞定!

菜鸟就是菜鸟,一个坑可以折腾一上午,好像以前也遇见过同样的问题,但是忘记了,所以记录下来,帮助别人也帮助自己orz

关闭防火墙命令:systemctl stop firewalldservice

开启防火墙:systemctl start firewalldservice

关闭开机自启动:systemctl disable firewalldservice

开启开机启动:systemctl enable firewalldservice

1 永久性生效

开启:chkconfig iptables on

关闭:chkconfig iptables off

2 即时生效,重启后失效

开启:service iptables start

关闭:service iptables stop

[TOC]

由于没有公网IP,无法远程连接家里的电脑,搜到了 frp 这个项目,尝试使用后发现效果不错,所以写出安装过程分享。

frp是一个反向代理工具,可以将流量转发到目标主机,包括TCP,UDP,HTTP,HTTPS。其基本原理是目标主机安装客户端连接到代理服务器建立固定连接,客户主机通过代理服务器连接到目标主机进行访问。

市面上有向日葵,TeamViewer也是类似原理,只不过这里变成代理服务器需要我们自己提供,比如从腾讯云或者阿里云购买一台轻量服务器作为代理服务器,有固定的公网IP可以访问。自建服务器的好处是带宽独享,可以有更稳定的连接效果。

而制作镜像是希望能够方便多次部署。

SELinux是关闭状态,不需要处理

防火墙是关闭状态,把防火墙开启

提前开放一段端口范围,用于frp流量转发。

查看docker

docker还没安装,需要自己安装。

添加docker的安装源。

查看docker-ce版本

这里看到提示 versionlock ,由于只是安装frp,所以先把锁删掉。

Docker可以默认安装最新版本,或者指定版本安装,分别指令如下。

这里直接安装最新版本,等待安装完成

安装完后确认docker版本,并启动docker服务

登录代理服务器,创建目录并将frp复制到目录下

将frpsini备份并编辑frpsini。

编辑Dockerfile

配置完毕,可以开始构建镜像

构建需要拉取CentOS,根据网速可能需要等待一会儿

查看镜像,可以看到镜像已经制作完成,TAG是v1

基于镜像开启容器

查看监听端口是否开启

查看容器日志

目前看来一切正常。尝试访问监控面板。

之前配置端口 dashboard_port = 20001,假设代理服务器IP是10613127200,那么通过 http://10613127200:20001 访问监控面板

正常情况下,会提示输入之前配置的用户和密码,并看到如下页面

代理服务器配置好后,配置目标主机,

关于远程连接的配置这里不做说明,默认已配置好远程连接的参数,只是需要代理服务器中转。

frpc和frps配置类似,编辑frpcini

具体配置

运行frpc

查看frpc的日志frpclog

查看frps的日志

目标主机与代理服务器成功建立TCP和UDP连接

客户主机打开远程桌面连接,输入IP和端口进行连接10613127200:20010

可以看到成功连接,并且已启用UDP

frp也支持P2P模式,即客户主机和目标主机直接建立连接,理论上会有更好的连接效果。但是由于现实中的网络环境,这种模式可能失败。本人尝试过有失败情况,也有成功情况。可以参考frp文档自行尝试。

Windows远程桌面会尝试使用UDP提供更好的效果,所以这里同时配置了TCP和UDP代理。如果希望有更好的效果,可以考虑配置GPU渲染。关于远程桌面的流量和GPU有机会其他文章说明。

可以通过services的服务命令进行关闭,具体操作步骤如下:

工具/原材料

win7电脑。

1、打开电脑同时按“win+R”快捷键打开运行命令的窗口;

2、打开运行命令的窗口以后,在打开栏里输入“servicesmsc”的命令;

3、打开命令以后,在弹出的界面可中找到并双击Windows firewall防火墙的设置;

4、双击打开防火墙以后,在弹出对话框中将启动类型设置成禁用即可关闭防火墙。

偶然看到防火墙的配置操作说明,感觉不错。执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现防火墙配置界面,将”安全级别”设为”禁用”,然后选择”确定”即可

或者用命令:

  #/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT

  #/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT

  #/etc/rcd/initd/iptables save

这样重启计算机后,防火墙默认已经开放了80和22端口

这里应该也可以不重启计算机:

  #/etc/initd/iptables restart

防火墙的关闭,关闭其服务即可:

查看防火墙信息:

  #/etc/initd/iptables status

关闭防火墙服务:

#/etc/initd/iptables stop

永久关闭?不知道怎么个永久法:

  #chkconfig –level 35 iptables off

看了好几个页面内容都有错,下面是正确方法:

  #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

  #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

然后保存:

  #/etc/rcd/initd/iptables save

再查看是否已经有了:

[root@vcentos ~]# /etc/initd/iptables status

  Table: filter

  Chain INPUT (policy ACCEPT)

  num target prot opt source destination  

  1 ACCEPT udp -- 0000/0 0000/0 udp dpt:80

  2 ACCEPT tcp -- 0000/0 0000/0 tcp dpt:80

  3 RH-Firewall-1-INPUT all -- 0000/0 0000/0

Chain FORWARD (policy ACCEPT)

  num target prot opt source destination  

  1 RH-Firewall-1-INPUT all -- 0000/0 0000/0

服务器遭受到大量的大量SYN_RECV,80端号占死,网站打不开

没有硬防

有什么办法可以解决吗

1

  sysctl -w netipv4tcp_syncookies=1 #启用使用syncookies

  sysctl -w netipv4tcp_synack_retries=1 #降低syn重试次数

  sysctl -w netipv4tcp_syn_retries=1 #降低syn重试次数

  sysctl -w netipv4tcp_max_syn_backlog=6000 #最大半连接数

  sysctl -w netipv4confallsend_redirects=0

  sysctl -w netipv4confallaccept_redirects=0 #不接受重定向的icmpbr /sysctl -w netipv4tcp_fin_timeout=30

  sysctl -w netipv4tcp_keepalive_time=60

  sysctl -w netipv4tcp_window_scaling=1

  sysctl -w netipv4icmp_echo_ignore_all=1 #禁止ICMP

  sysctl -w netipv4icmp_echo_ignore_broadcasts=1 #ICMP禁止广播

2限制单位时间内连接数

  如

  iptables -N syn-flood

  iptables -A FORWARD -p tcp --syn -j syn-flood

  iptables -A INPUT -p tcp --syn -j syn-flood

  iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP

  iptables -A syn-flood -j DROP

  iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP

  iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP

3 如果还是不行,

  iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT

  iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP

如攻击过来的流量大于你的服务器的流量,那就没有什么办法了,如果流量不大,以上方法,可以暂时保证你的80可以访问

如果你的内核已经支持iptables   connlimit可以使用, iptables 设定部份,也可以使用

iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP

  或

  iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT

对付SYN FLOOD的话,真正起作用的是:

  sysctl -w netipv4tcp_syncookies=1        #启用使用syncookies

  sysctl -w netipv4tcp_synack_retries=1        #降低syn重试次数

  其他IPTABLES的限制速度功能不能用来对付SYN FLOOD的(不能阻止拒绝服务,但是确实可以防止服务器CRASH)。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 解决阿里云ssh: connect to host xxxxx port 22: Connection timed out

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情