美文网首页
服务器常用操作命令和常见问题

服务器常用操作命令和常见问题

作者: 地上的 | 来源:发表于2019-03-21 21:29 被阅读0次

自己搭了服务器之后,要开始慢慢管理和整理,这里就一些常用的操作和常见的问题做一个实时更新和分享。

连接服务器命令:ssh root@xxx.xxx.xxx.xx

一、连接到服务器出错:Connection closed by xxx.xxx.xxx.xx port 22

解决方案:
1、首先使用打印输出的形式连接服务器: ssh -v root@xxx.xxx.xxx.xx
2、看日志一般会卡在两个地方:
debug1: SSH2_MSG_KEXINIT sent或者debug1: expecting SSH2_MSG_KEX_ECDH_REPLY。这里有2种可能:
(1)你的连接请求发不出去,多半是网络问题,我就被这里坑惨了,我测试性的用手机热点发现可以连接,原来是公司内网屏蔽了未知IP的ssh连接(安全部可以的...可能是怕我中毒了,沿着内网进行入侵),而他们可能只是想屏蔽掉一些小白的乱点不友好网站的情况(一般是默认端口22),所以这个时候我们将我们的服务器换个端口访问就行。
接下来更换服务器端口:
1、电脑连接上手机热点网络,然后用ssh -v root@xxx.xxx.xxx.xx连接上服务器;
2、输入命令:vim /etc/ssh/sshd_config
3、找到#Port 22,先去掉前面的#注释,然后在下方加一个端口号,比如Port 80(注意这里要去掉前面的#注释符),这样保留两个端口号的好处就是如果新加的端口有问题,那还可以使用原来的22端口来访问,改完后:wq保存退出
4、执行重启命令:service ssh restart,如果报错,换service sshd restart
5、切换回原来WiFi,用ssh -p 80 root@xxx.xxx.xxx.xx指定80端口来连接上服务器。
6、这里利用了一般安全防护会屏蔽默认端口(ssh连接默认端口22)的问题,后面会对端口做详细介绍,前面我们更改端口用的80,80是HTTP默认端口,所以为了避免后续影响HTTP服务,换个别的吧(比如666?)这里只是为了更好理解而使用的。

附:端口相关(参考链接:端口的作用):

端口的作用:

我们知道一台主机(对应一个IP地址)可以提供很多服务,比如web服务,ftp服务等等。如果只有一个IP,无法区分不同的网络服务,所以我们采用”IP+端口号”来区分不同的服务。

端口的定义:

端口号是标识主机内唯一的一个进程,IP+端口号就可以标识网络中的唯一进程。在我们通常用的Socket编程中,IP+端口号就是套接字
端口号是由16比特进程编号,范围是0-65535,按照道理来讲,这些端口你都可以随便用。但是你不是vip用户,所以有一些端口被vip用户占着。比如FTP 21 Ssh 22等等,所以给端口分了类,规定你可以使用端口的范围。

端口的分类:

分类的维度很多,这里按照服务端使用还是客户端使用分类
1、服务端使用的端口号
预留端口号
取值范围0-1023,这些端口我们编程的时候不能使用,是那些vip应用程序使用的,只有超级用户特权的应用才允许被分配一个预留端口号
登记端口号
取值范围1024-49151,就是我们平时编写服务器使用的端口号范围
2、客户端使用的端口号
取值范围49152-65535,这部分是客户端进程运行时动态选择的范围,又叫临时端口号

(2)MTU问题,也即虚拟网卡MTU大于服务器那边的网络MTU。
1、输入命令:ifconfig查看本地配置
2、找到虚拟网卡的设备号,我这里是:utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
3、然后更改mtu值:sudo ifconfig utun0 mtu 1200
4、改完之后重新连接服务器。
ssh 密钥交换阶段一次发送的数据一般大于 1500 字节,因此至少填满了一个 MTU,通过utun0发出密钥交换信息,因为大于目标网络的MTU,而被丢弃,将utun0设备的MTU设置为1200后,不会超过目标网络设定的MTU,因此可以正常交换密钥。

二、连接上服务器后,如果一段时间不操作,会自动断开连接

这是因为没有设置心跳时间间隔和最大无响应次数。
1、连接上服务器
2、打开ssh配置文件:vim /etc/ssh/sshd_config
3、找到ServerAliveIntervalServerAliveCountMax参数,这两个也被注释掉了,去掉前面的#注释符,将数值改大点,我这里修改的值
是60和300;
ServerAliveInterval表示每隔多少秒,从客户端向服务器端发送一次心跳(alive 检测)。
ServerAliveCountMax表示服务端多少次心跳无响应之后,客户端才会认为与服务器的 SSH 连接已经断开,然后断开连接。

三、修改Debian服务器主机名(hostname)

1、输入命令查看当前主机名:hostname
2、要修改hostname需要root权限,当前我们是root用户登录,所以没问题,如果不是可以切换用户或者使用sudo
3、vim /etc/hosts:将文件中的当前出现的hostname全部改成新的hostname。
4、vim /etc/hostname,同样修改。
5、hostname xxxxx(新的hostname),临时修改当前显示的hostname,重启服务器后,则真正生效。

如有其它问题可以评论留言,共同探讨。

四、下载文件

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

语法:# curl [option] [url]

这里的option可选很多

-A/--user-agent <string>              设置用户代理发送给服务器
-b/--cookie <name=string/file>        cookie字符串或文件读取位置
-c/--cookie-jar <file>                操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>             断点续转
-D/--dump-header <file>               把header信息写入到该文件中
-e/--referer                          来源网址
-f/--fail                             连接失败时不显示http错误
-o/--output                           把输出写到该文件中
-O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                    检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                           静音模式。不输出任何东西
-T/--upload-file <file>               上传文件
-u/--user <user[:password]>           设置服务器的用户和密码
-w/--write-out [format]               什么输出完成后
-x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
-#/--progress-bar                     进度条显示当前的传送状态

1、常用下载文件操作:
-O大写的O代表保留原始文件名的形式下载保存。
curl -O http://soft.vpser.net/lnmp/lnmp1.5.tar.gz
-o小写的o后面跟一个文件名,代表按照自己的命名来下载保存文件
curl -o xxxxx.tar.gz http://soft.vpser.net/lnmp/lnmp1.5.tar.gz

五、测试速度

进行IO、随机节点下载,来查看性能速度:
wget -qO- bench.sh | bash

相关文章

网友评论

      本文标题:服务器常用操作命令和常见问题

      本文链接:https://www.haomeiwen.com/subject/wrthvqtx.html