当前位置: 首页>前端>正文

计算机终端命令

telnet

打开telnet 功能
??默认情况,在命令行下输入 telnet会提示不是内部命令或外部命令。只需要打开即可:

  • 1.在控制面板中点击程序选项。
  • 2.点击启用或关闭Windows功能。
  • 3.找到并勾选 teInet client选项。点击确定即可。

telnet 介绍
??Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
??虽然Telnet较为简单实用也很方便,但是在格外注重安全的现代网络技术中,Telnet并不被重用。原因在于Telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,因此许多服务器都会选择禁用Telnet服务。如果我们要使用Telnet的远程登录,使用前应在远端服务器上检查并设置允许Telnet服务的功能。

简单理解:可用于远程登录,端口号为23,但因为是明文传输,不推荐,推荐使用SSH (端口号为22)来做远程登录

??更多是用来检查端口是否可用

telenet ip/域名 port

如:telnet www.baidu.com 80
检测到:会进入一个新的命令行界面。linux 下会展示为已连接

计算机终端命令,第1张
未检测到:
计算机终端命令,第2张

计算机终端命令,第3张

ssh

参考:http://www.cncsto.com/article/5604
查看SSH客户端版本

ssh -V

连接远程主机

ssh name@remoteserver

连接远程主机并指定端口:

ssh name@remoteserver -p port
如:ssh liu@192.168.37.140 -p 22

通过远程主机1跳到远程主机2:

ssh -t remoteserver1 ssh remoteserver2

说明:当远程主机remoteserver2无法直接到达时,可以使用-t参数,然后由remoteserver1跳转到remoteserver2。在此过程中要先输入remoteserver1的密码,然后再输入remoteserver2的密码,然后就可以操作remoteserver2了。

通过SSH运行远程shell命令:

ssh -l name remoteserver ‘command'

??我一般是在 cmd 上先连接到远程主机,连接上了直接输入命令即可。比如当本地开启了ubuntu linux,想要在windows 系统中终端操作。就可以:
1、windows 打开终端
2、ubuntu 中查看 ip(ifconfig)
3、在 cmd 终端 ping ip 看网络是否通了
4、 cmd 终端中输入 ssh liu@ip -p 22,后输入 linux 账号密码即可

修改SSH监听端口:
??默认情况下,SSH监听连接端口22,攻击者使用端口扫描软件就可以看到主机是否运行有SSH服务,将SSH端口修改为大于1024的端口是一个明智的选择,因为大多数端口扫描软件(包括nmap)默认情况都不扫描高位端口。
一、打开 /etc/ssh/sshd_config,编辑该文件,同样找到如下位置:
在取消掉Port 22所在行的注释后,再新增一行,例如:

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
Port 2222

这样通过22和222端口都可以连接到服务器上了,这里注意不能只添加Port 2222,这样就变成修改了,22端口就连接不了了.

二、重启sshd服务
无论是修改SSH端口还是新增SSH端口,修改完配置文件后都要重启SSHD服务,使得修改生效。使用如下命令:

systemctl restart sshd

只允许SSH协议版本2:

有两个SSH协议版本,仅使用SSH协议版本2会更安全,SSH协议版本1有安全问题,包括中间人攻击(man-in-the-middle)和注入(insertion)攻击。编辑 /etc/ssh/sshd_config文件并查找下面这样的行:

`# Protocol 2,1`
`修改为`
`Protocol 2`

禁止root用户登录:

通常情况下,不采用直接用root用户登录到远程主机,由于root用户拥有超级权限,这样会带来安全隐患,所以,一般我们用普通用户登录,当需要管理远程主机时,再切换到root用户下。打开/etc/ssh/sshd_config文件并查找下面这样的行:

`#PermitRootLogin yes`

将#号去掉,然后将yes修改成no,重启ssh服务,这样就可以禁止root用户登录。

将#号去掉,然后将bannertest.txt文件的全路径替换/some/path,然后保存,重启ssh服务。当客户端登录时,就会看到bannertest.txt文件中的提示信息。

进行端口映射:

假如公司内网有台web服务器,但是只对内不对外,这样,外网就无法访问,可以用ssh进行端口映射来实现外网访问内网的web服务器。假如web服务器名为webserver,webserver可以用ssh访问到远端主机remoteserver,登录到webserver,然后用下面命令进行映射

命令格式:

ssh -R 3000:localhost:80 remoteserver

执行完成后,在remoteserver机器上,执行netstat -an | grep 3000,查看有没有开通3000端口。并执行以下命令观察是否可以打开webserver上的网页

w3m http://127.0.0.1:3000

如果能打开界面,说明映射成功.但是,这只限于本机访问web服务器,即只能remoteserver机器访问webserver。因为3000端口绑定的是remoteserver机器的127.0.0.1端口。可以编辑remoteserver机器上的/etc/ssh/sshd_config文件并添加如下内容:
添加 GatewayPorts yes 内容,把监听端口3000绑定到 0.0.0.0 地址上,这样外部的所有机器都能访问到这个监听端口,然后保存退出。并重启ssh服务。完成后其它机器就可以在浏览器中输入 http://remoteserver:3000来访问webserver了。

设置登录时提示信息

首先编辑一个文件,如bannertest.txt,文件内容自行定义。然后打开/etc/ssh/sshd_config文件并查找下面这样的行:

#Banner /some/path`

curl

参考:B站 技术蛋老师视频

curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出“stdout”上面,可以用它来构造http request报文,curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。

优点:不需要借助浏览器,命令行即可、跨平台

支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。curl还支持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。

如果你是win10系统及以上那么电脑自身就自带了curl无需另外下载!如果电脑本身没有curl那么请前往官网进行下载!

与ping 对比:可以拿到响应的资源

查看版本

curl -V

输出:
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: [unreleased]
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL</pre>

请求相关

发送请求

curl URL Get请求
eg: curl https://www.baidu.com/

curl -X -POST URL -d ’数据‘ / curl -XPOST URL -d ’数据‘ Post请求
eg: curl -XPOST https://www.baidu.com/

使用该-F选项时,curl使用的默认Content-Type是“multipart/form-data”,以key=value配对形式

curl -XPOST http://127.0.0.1:8000/login -F 'name=Jason' -F 'email=jason@example.com'

使用-d选项,可以使用&符号对发送数据进行合并

curl -XPOST http://127.0.0.1:8000/login -d 'name=Jason&email=jason@example.com'

使用-H选项,指定Content-Type为application/json发送JSON对象

curl -XPOST http://127.0.0.1:8000/login -H "Content-Type:application/json" -d '{"user": "admin", "passwd":"12345678"}' # 通过-d指定json data内容

curl -X -PUT URL / curl -XPUT URL -d 数据 Put请求
eg: curl -XPUT https://www.baidu.com/

curl -X -DELETE URL / curl -XDELETE URL Delete请求
eg: curl -XDELETE https://www.baidu.com/</pre>

获取响应头信息

curl -I URL

下载上传

注意大小写

把a.tar下载到本地了;
curl -O URL
eg: curl -O http://a.b.c/a.tar

把a.tar下载下来顺便改名为newName.tar
curl -o newName.tar URL
eg: curl -o home.html http://a.b.c/a.tar

限制下载速度(默认速度字节,适合大文件下载)
curl --limit-rate 速度 URL

curl -C - URL 继续之前中断的下载(注意-)

下载ftp协议的文件:(加了用户账号密码)
curl -u 用户名:密码 -O URL</pre>

上传
curl -u 用户名:密码 -T 文件名 URL</pre>

跟随重定向

curl 默认不会跟随重定向,加-L就会跟随重定向

curl -L URL

代理访问

curl --proxy 协议://用户名:密码@代理地址:端口 URL

查看问题

显示连接响应头部、响应结果等,建议加上

curl -v URL

ping

作用

ping是一个十分基本但又十分重要的TCPIP网络工具。它的作用主要为:
(1)通常用来检测网络的连通情况和测试网络速度;
(2) 也可以根据域名得到相应主机的IP地址;
(3)根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。

Ping 检查连通性

使用Ping检查连通性有五个步骤:

  1. 使用ipconfig / ifconfig(linux)观察本地网络设置是否正确

  2. ping 127.0.0.1,127.0.0.1 回送地址,Ping回送地址是为了检查本地基础网络配置是否正常,TCP/IP协议有没有设置好;

  3. ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;

(有些电脑hosts 文件把localhost 解析为127.0.0.1,因此建议直接用ip地址)

  1. Ping默认网关,通过是ping 路由器,这样的是为了检查硬件设备如路由器是否有问题

    前四步ok证明不是主机或者网络问题。

  2. ping 目标ip 如ping 10.2.33.22

    如果ping 失败,则证明是外界原因。可能是对方主机不在线,或者防火墙禁止了ping 请求,或者数据包丢失等

  3. ping 目标主机名(域名) 如ping www.baidu.com

    其实 ping 域名,是先根据域名解析获取ip地址,然后再ping ip,也可以从日志看到ip地址

以脸书和百度为例,脸书禁止访问


计算机终端命令,第4张
计算机终端命令,第5张

ping 接收参数分析

from:ping 的ip地址
icmp_seq:第几次请求,icmp是网络层的协议
ttl:time to live,有初始值,每经过一个值为-1,当为0则丢弃,防止数据包一直在
time: 单位ms,ping 命令会计时从发送请求到接收到所花费的时间</pre>

ping 常用指令

ping ip/域名

ping -c num ip/域名 指定ping的请求次数
ping -c num -q ip/域名 减少打印信息(quit)
ping -a ip/域名 ping 成功发出声音(audio)
ping -i num ip/域名 间隔num时间,单位s,发送一次请求

window:发送4条请求,超时则展示’请求超时‘
linux 、macos:无限发送请求,使用ctrl + C 进行中断。一直等待请求结果

错误分析

1.Request timed out

这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,从上面工作过程来看,这是不完全正确的,至少有下几种情况。

(1)对方已关机,或者网络上根本没有这个地址:比如在上图中主机A中PING 192.168.0.7,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信息。

(2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的。当然不存在也是返回超时的信息。

(3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。

怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。

(4)错误设置IP地址

正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题:

A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。

B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。

2.Destination host Unreachable

目标主机无法访问

(1)对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping 192.168.0.1.4就会出现“Destination host Unreachable”。

同一网段:https://baike.baidu.com/item/%E5%90%8C%E4%B8%80%E7%BD%91%E6%AE%B5/448495?fr=aladdin

(2) 网线 出了故障

这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。3.Bad IP address

这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。

3.Source quench received

这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。

4.Unknown host——不知名主机

这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。

5.No answer——无响应

这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

6.Ping 127.0.0.1:127.0.0.1是本地循环地址

如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。

7.no rout to host:网卡工作不正常。

8.transmit fai led ,error code:10043网卡驱动不正常。

9.unknown host name:DNS配置不正确。

4、如何用Ping命令来判断一条链路好坏

net start/stop 操作服务

??用于查看、启动或停止远程主机上的某个服务,
其语法格式为:

net start 查看本机或远程主机已启动服务。
net start [服务名称] 启动某个服务
net stop [服务名称] 停止某个服务



WSL 使用 systemctl 会报错,因为没有使用systemd,因此可以使用 service 来操作服务。

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

操作 Windows Linux WSL
启动MySQL服务 net start mysql systemctl start mysql service mysql start
停止MySQL服务 net stop mysql systemctl stop mysql service mysql stop

netstat

监控本机的TCP/IP网络,获得路由表、网络连接以及所有网络接口设备的状态信息。
参考


https://www.xamrdz.com/web/2c21994139.html

相关文章: