美文网首页
计算机终端命令

计算机终端命令

作者: 梦晓半夏_d68a | 来源:发表于2022-12-10 14:46 被阅读0次

    telnet

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

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

    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
    检测到:会进入一个新的命令行界面。

    未检测到: image.png

    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 检查连通性

    使用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地址

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


    image-20221124123645854.png image-20221124124110608.png

    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 [服务名称] 停止某个服务

    相关文章

      网友评论

          本文标题:计算机终端命令

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