每天2个Linux命令 telnet service


2017-08-12 每天2个Linux命令 telnet命令

执行telnet指令开启终端机阶段作业,并登入远端主机。

(1)用法:

用法:  telnet [参数] [主机]

(2)功能:

功能:  telnet命令通常用来远程登录。

原理: Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算)。

telnet实现的远程登录:

分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,
系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为'登远程登陆是指用户使用Telnet命令,
使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,
再将主机输出的每个信息回显在屏幕上。

telnet的简介:

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。
终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。
可以在本地就能控制服务器。要开始一个 telnet会话,必须输入用户名和密码来登录服务器。

Telnet是常用的远程控制Web服务器的方法。但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,
而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,
因此弄清楚telnet客户端的使用方式仍是很有必要的。

telnet命令还可做别的用途,比如确定远程服务的状态,比如确定远程服务器的某个端口是否能访问。

(3)选项参数:

1) -8          允许使用8位字符资料,包括输入与输出。

 2) -a        尝试自动登入远端系统。

3) -b<主机别名>   使用别名指定远端主机名称。

 4) -c          不读取用户专属目录里的.telnetrc文件。

 5) -d        启动排错模式。

 6) -e<脱离字符>   设置脱离字符。

 7) -E        滤除脱离字符。

 8) -f            此参数的效果和指定"-F"参数相同。

 9) -F        使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。

   10) -k<域名>     使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。

   11) -K           不自动登入远端主机。

   12) -l<用户名称>    指定要登入远端主机的用户名称。

   13) -L        允许输出8位字符资料。

   14) -n<记录文件>   指定文件记录相关信息。

   15) -r         使用类似rlogin指令的用户界面。

   16) -S<服务类型>   设置telnet连线所需的IP TOS信息。

   17) -x         假设主机有支持数据加密的功能,就使用它。

   18) -X<认证形态>   关闭指定的认证形态。

(4)实例:

 1)[root@localhost xinetd.d]# telnet localhost 23      连接本地的主机,端口号为23

复制代码
[root@localhost xinetd.d]# telnet localhost 23
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-229.el7.x86_64 on an x86_64
localhost login: sunjimeng
Password: 
Last login: Sat Jun 18 18:29:24 from ::ffff:192.168.142.128
[sunjimeng@localhost ~]$ 

2)用真实物理机win10连接虚拟机中的centOS:

在命令窗口cmd中输入:

C:\Users\JMSun>telnet 192.168.0.8
弹出另一个页面:(这是在win10下的页面,在这里可以自由操作centos,结果类似直接使用centos的终端。)

3)用telnet实现win10连接win7:

  在用我自己的win10连接别人的win7系统前,我首先将win7的防火墙关闭,打开telnet服务。然后:

复制代码
C:\Users\JMSun>ping 192.168.0.5    //这是win7机的IP,在这里先测试与它的连通性

正在 Ping 192.168.0.5 具有 32 字节的数据:
来自 192.168.0.5 的回复: 字节=32 时间=62ms TTL=128
来自 192.168.0.5 的回复: 字节=32 时间=6ms TTL=128
来自 192.168.0.5 的回复: 字节=32 时间=4ms TTL=128
来自 192.168.0.5 的回复: 字节=32 时间=2ms TTL=128

192.168.0.5 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 2ms,最长 = 62ms,平均 = 18ms

C:\Users\JMSun>telnet 192.168.0.5
复制代码
     弹出页面:

(5)其他:

1.学习此命令遇到的问题:

一.centOS7.0下的shell中出现下面的问题:

[root@localhost sunjimeng]# telnet
bash: telnet: 未找到命令...

解决方案:

1)安装telnet-server,telnet,xinted:

2)将xinetd、telnet服务加入开机自启动

[root@localhost etc]# systemctl enable xinetd.service
[root@localhost etc]# systemctl enable telnet.socket
ln -s '/usr/lib/systemd/system/telnet.socket' '/etc/systemd/system/sockets.target.wants/telnet.socket'

3)启动这两个服务:

[root@localhost etc]# systemctl start telnet.socket
[root@localhost etc]# systemctl start xinetd

二.我用win10的电脑和虚拟机中的centOS7.0想实现他们之间的通信,但是出现几个问题:

 1)centOS虚拟机无法ping到物理机win10:

  解决方法:关闭win10的防火墙;

 2)centOS虚拟机能ping到物理机,物理机win10却无法ping到centOS虚拟机:

  解决方法:将虚拟机的网络配置由NAT模式转向桥接模式。这里还涉及到桥接模式下的网络配置问题,以后讨论。

(NAT模式下主机与虚机之间不能互相ping通,因为虚拟机是靠主机的真实IP来访问互联网的,而桥接模式下虚拟机有自己独立的动态IP地址。)

3)centOS能够用telnet连接自身,却无法连接物理机win10:

  解决方法:由于在win10系统中telnet的服务端被删去了(不安全性),只保留了客户端,所以要想达到目的,
必须重新下载telnet.server程序并安装配置。在win10的打开或关闭windows功能里启动telnet客户端程序。
并同时启动服务端(如果是win7系统则直接在windows功能选项中打开就行。)。

  这里存在一个细节:如果你的win10账户不是本地账户而是Microsoft网络账户,则无法连接。
需要新建一个本地账户:包括用户名,密码,和域名(domain name)。其中domain name不需要输入,默认为空。

  而且在centOS连接到win10后会出现乱码问题,这个问题以后解决。(centOS采用UFT编码方式,而win10采用GB2312编码方式。)

4)centOS能够用telnet连接物理机win10,物理机却无法连接centOS,提示:

2017-08-12 每天2个Linux命令 service命令

service命令用于对系统服务进行管理。

(1)用法:

用法:  service  [服务]  [操作]

(2)功能:

功能:  service命令用于启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

3)选项参数:

  1) status       

  2) start

  3) stop

  4) reload

  5) disable

  6) force-reload

这几个参数顾名思义,不再解释!

(4)实例:

  1)[sunjimeng@localhost ~]$ service mysql           查看service命令的简介       

[sunjimeng@localhost ~]$ service mysql
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status).
 For other actions, please try to use systemctl.

2)[sunjimeng@localhost ~]$ service xinetd status       查看指定服务的状态信息

复制代码
[sunjimeng@localhost ~]$ service xinetd status
Redirecting to /bin/systemctl status  xinetd.service
xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled)
   Active: active (running) since 日 2016-06-19 23:49:21 PDT; 22min ago
  Process: 1395 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 1426 (xinetd)
   CGroup: /system.slice/xinetd.service
           └─1426 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
复制代码
      查看网络连接服务的状态信息:

[root@localhost sunjimeng]# service network status
Configured devices:
lo eno16777736 配置_1
Currently active devices:
lo eno16777736

3)[sunjimeng@localhost ~]$ service xinetd stop        停止xinetd服务

复制代码
[sunjimeng@localhost ~]$ service xinetd stop
Redirecting to /bin/systemctl stop  xinetd.service
Failed to issue method call: Access denied                //没有root权限,所以拒绝访问
[sunjimeng@localhost ~]$ su root
密码:                                                     //登入root
[root@localhost sunjimeng]# service xinetd stop
Redirecting to /bin/systemctl stop  xinetd.service        
[root@localhost sunjimeng]# service xinetd status
Redirecting to /bin/systemctl status  xinetd.service
xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled)
   Active: inactive (dead) since 一 2016-06-20 00:15:27 PDT; 15s ago
  Process: 1395 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 1426 (code=exited, status=0/SUCCESS)

6月 19 23:49:21 localhost.localdomain xinetd[1426]: removing echo
6月 19 23:49:21 localhost.localdomain xinetd[1426]: removing tcpmux
6月 19 23:49:21 localhost.localdomain xinetd[1426]: removing time
6月 19 23:49:21 localhost.localdomain xinetd[1426]: removing time
6月 19 23:49:21 localhost.localdomain xinetd[1426]: xinetd Version 2.3.15 st...
6月 19 23:49:21 localhost.localdomain xinetd[1426]: Started working: 0 avail...
6月 20 00:07:22 localhost.localdomain systemd[1]: Started Xinetd A Powerful ...
6月 20 00:08:07 localhost.localdomain systemd[1]: Started Xinetd A Powerful ...
6月 20 00:15:27 localhost.localdomain systemd[1]: Stopping Xinetd A Powerful...
6月 20 00:15:27 localhost.localdomain systemd[1]: Stopped Xinetd A Powerful ...
Hint: Some lines were ellipsized, use -l to show in full.

4)[root@localhost sunjimeng]# service xinetd restart      重启守护进程

[root@localhost sunjimeng]# service xinetd restart
Redirecting to /bin/systemctl restart  xinetd.service

5)[root@localhost sunjimeng]# service xinetd reload      重新加载守护进程xinetd的配置文件

[root@localhost sunjimeng]# service xinetd reload
Redirecting to /bin/systemctl reload  xinetd.service

(5)其他:

1.service程序与一般的程序的区别:

  service(也称为daemon)表示后台运行的程序,一般随系统的启动自动地启动且在用户logoff后仍然能够继续运行。
该daemon进程一般在启动后需要与父进程断开关系,并使进程没有控制终端(tty)。

  因为daemon程序在后台执行,不需要于终端交互,通常就关闭STDIN、STDOUT和STDER。daemon无法输出信息,
可以使用syslog或自己的日志系统进行日志处理。

  可以使用/etc/rc.d/init.d/functions脚本中的daemon函数来将一般的程序启动为daemon:

[root@localhost sunjimeng]# ls /etc/rc.d/init.d/functions
/etc/rc.d/init.d/functions

2.xinetd:

xinetd本身是一个service,他的作用是监听所有的端口,根据配置对不同的端口启动不同的应用。 对于有些需要在后台运行的程序,
可以选择设置为service在后台一直运行,也可以选择使用xinetd来配置此程序根据需要激活。

对于需要频繁访问的服务,需要在/etc/rc.d/init.d下配置为service;对于不是频繁访问的服务,可以使用xinetd来激活,
从而节约服务器的资源;总之service与xinetd,选一即可。

3.service命令和chkconfig命令与服务程序的关系:

   service的管理工具是:        /sbin/service

service的自动启动控制工具是:   /sbin/chkconfig 

分类: CentOS服务器管理

文章作者: 邓滔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 邓滔 !
评论
  目录