When it comes to networking,there is probably nothing that cannot be done with Linux.Linux is used to build all sorts of networking systems and appliances(器具,器械,装置),including firewalls,routers,name servers,NAS(Network Attached Storage)boxes and on and on.

Just as the subject of networking is vast(巨大的,广大的),so are the number of commands that can be used to configure and control it.We will focus our attention on just a few of the most frequently(频繁地,屡次地) used ones.The commands chosen for examination include those used to monitor networks and those used to transfer files.In addition,we are going to explore the ssh program that is used to perform remote logins.This chapter will cover:

  • ping - Send an ICMP ECHO_REQUST to network hosts
  • traceroute-Print the route packets trace to a network host.
  • netstat- Print network connections,routing tables,interface statistics,masquerade(化装舞会,伪装物,假装,假扮) connections,and multicast memberships
  • ftp - Internet file tranfer program
  • wget - Non-interactive network downloader 非交互式网络下载器
  • ssh - OpenSSH SSH client(remote login program)

We're going to assume a little background in networking.In this,the Internet age,everyone using a computer needs a basic understandng of networking concepts.To make full use of this chapter we should be familiar with the following terms:

IP(Internet Protocal) address

Host and domain name

URI(Uniform Resource Identifier) 统一资源标识符

Please see the "Further Reading" section below for some useful articles regarding these terms.

Note:Some of the commands we will cover may(depending on your distribution) require the installation of additional packages from your distribution's repositories,and some may require superuser privileges to execute.

Check and monitor network

Even if you're not the system administrator,it's often helpful to examine the performance and operation of a network.

ping

The most basic network command is ping.The ping command sends a special network packet called an ICMP ECHO_REQUEST to a specified host.Most network devices receiving this packet will reply to it,allowing the network connection to be verified.

Note:It is possible to configure most network devices(including Linux hosts) to ignore these packets.This is usually done for security reasons,to partially obscure(遮掩) a host from a potential attacker.It is also common for firewalls to be configured to block ICMP traffic.

For example,to see if we can reach linuxcommand.ort(one of our favorite sites),we can use ping like this:

Once started,ping continus to send packets at a specified interval(default is one second) until it is interrupted:

After it is interrupted(in this case after the sixth packet)by pressing Ctrl-c,ping prints performance statistics.A properly performing network will exhibit(展示,展览) zero percent loss.A successful "ping" will indicate that the elements of the network(its interface cards,cabling,routing and gateways) are in generally good working order.

Traceroute

The traceroute program(some systems use the similar tracepath program instead) displays a listing of all the "hops" network traffic takes to get from the local system to a specified host.For example,to see the route taken to reach slashdot.org,we would do this:

The output looks like this:

In the output,we can see that connecting from our system to slashdot.org requires traversing(穿越,穿过) thirty routers.For routers that provided identifying information,we see their host names,IP addresses and performance data,which includes three samples of  of round-trip time from the local system to the router.For routers that do not provide identifying information(because of router configuration,network congestion(拥堵),firewalls,etc) we see asterisk(星号) as in the line for hop number two.

netstat

The netstat program is used to examine various network settings and statistics.Through the use of its many options,we can loot at a variety of features in our network setup.Using the "-ie" option,we can examine the network interfaces in our system:

In the example above,we see that our test system has two network interfaces.The first,called etho,is the Enternet interface and the second,called lo,is the loopback interface,a virtual interface that the system uses to "talk to itself."

When performing causal(有原因的,因果关系的) network diagnostics(诊断学)(当执行日常网络诊断时), the important things to look for are the presence(出席,参加,存在) of the word "UP" in the middle of the first line for each interface,indicating that the network interface is enabled,and the presence of a valid IP address in the inet addr field on the second line.For systems using DHCP(Dynamic Host Configuration Protocol), a valid IP address in the inet addr field on the second line.For systems using DHCP(Dynamic Host Configuration Protocol), a valid IP address in this field will verify that the DHCP is working.

Using the "-r" option will display the kernel's network routing table.This show how the network is configured to send packets from network to network:

In this simple example,we see a typical routing table for a client machine on a LAN(Local Area Network)behind a firewall/router.The second line of the listing shows the destination 192.168.159.0. IP address that end in zero refer to networks rather than individual hosts,so this destination means any host on the LAN.The next field,Gateway,is the name or IP address of the gateway(router) used to go from the current host to the destination network.An asterisk(星号) in this field indicates that no gateway is needed.

The first line contains the destination default.This means any traffic destined for a network that is not otherwise listed in the table.In our example,we see that the gateway is defined as a router with the address of 192.168.159.2,which presumably(大概,可能) knows what to do with the destination traffic.

The netstat program has many options and we have only looked at a couple.Check out the netstat man page for a complete list.

Transfer files over network

What good is a network unless we know how to move files across it?There are many programs that move data over networks.We will cover two of them now and several more in later sections.

FTP

One of the true "classic" programs,ftp gets it name from the protocol it uses,the File Transfer Protocol.FTP is used widely on the Internet for file downloads.Most,if not all,web browsers support it and you often see URIs starting with the protocol ftp://. Before there were web browsers,there was the ftp program.ftp is used to communicate with FTP servers,machines that contain files that can be uploaded and downloaded over a network.

FTP(in its original form) is not secure,because it send account names and passwords in cleartext.This means that they are not encrypted and anyone sniffing(嗅) the network can see them.Because of this,almost all FTP done over the Internet is done by anonymous FTP servers.An anonymous server allows anyone to login using the login name "anonymous" and a meaningless password.

In the example below,we show a typical session with the ftp program downloading an Ubuntu iso image located in the /pub/cd_images/Ubuntu-8.04 directory of the anonymous FTP server fileserver:

Here is an explanation of the commands entered during this session:

Table 17-1:

Command Meaning
ftp filesever Invoke the ftp program and have it connect to FTP server fileserver.
anonymous Login name.After the login prompt,a password prompt will appear.Some servers will accept a blank password,others will require a password in the form of a email address.In that case,try something like "user@example.com".
cd pub/cd_images/Ubuntu-8.04 Change to the directory on the remote system containing the desired file.Note that on most anonymous FTP servers,the files for public downloading are found somewhere under the pub directory.
 ls  List the directory on the remote system.
 lcd Desktop Change the directory on the local system to ~/Desktop. In the example,the ftp program was invoked when the working directory was ~.This command changes the working directory to ~/Desktop.
 get ubuntu-8.04-desktop-i386.iso Tell the remote system to transfer the file unbuntu-8.04-desktop i386.iso to the local system.Since the working directory on the local system was changed to ~/Desktop,the file will be downloaded there. 
 bye Log off the remote server and end ftp program session.The commands quit and exit may also be used. 

Typing "help" at the "ftp>" prompt will display a list of the supported commands.Using ftp on a server where sufficient(足够的,充足的) permissions have been granted,it is possible to perform many ordinary file mangement tasks.It's clumsy(笨拙的,笨重的),but it does work.

lftp-better ftp

ftp is not the only command line FTP client.In fact,there are many.One of better(and more popular) ones is lftp by Alexander Lukyanow.It works much like the traditional ftp program,but has many additional convenience features including multiple protocol support(including HTTP),automatic re-try on failed downloads,background processes,tab completion of path names,and many more.

weget

Another popular command line program for file downloading is wget.It is useful for loading content from both web and FTP sites.Single files,multiple files,and even entire sites can be downloaded.To downloaded the first page of linuxcommand.org we could do this:

The program's many options allow wget to recursively download,download files in the background(allowing you to log off but continue loading),and complete the download of a partically downloaded file.These features are well documented in its better-than-average man page.

Communicate safely with remote hosts

For many years,Unix-like operating systems have had the ability to be administered remotely via a network.In the early days,before the general(普遍) adoption(接受)of the Internet,there were a couple of popular programs used to log in to remote hosts.These were the rlogin and telnet programs.These programs,however,suffer from the fatal(致命的,灾难性的) flaw(缺点,瑕疵) that the ftp program does;they transmit all their communications(including login names and passwords) in cleartext.This makes them wholly(完全地,全部) inappropriate(不恰当的,不适宜的) for use in the Internet age.

ssh

To address this problem,a new protocol called SSH(Secure Shell) was developed.SSH solves the two basic problems of secure communication with a remote host.First,it authenticates that the remote host is who it says it is (thus preventing so-called"man in the middle" attacks),and second,it encrypts all of the communications between the local and remote hosts.

SSH consists of two parts.An SSH server runs on the remote host,listening for incoming connections on port twenty-two,while an SSH client is used on the local system to communicate with the remote server.

Most Linux distributions ship an implementaion(实现) of SSH called OpenSSH from the BSD project.Some distributions include both the client and the server packages by default(for example,Red Hat),while others(such as Ubuntu) only support the client.To enable a system to receive remote connections,it must have the OpenSSH-server package installed,configured and running,and (if the system is either running or is behind a firewall) it must allow incoming network connections on TCP port 22..

Tip:If you don't have a remote system to connect to but want to try these examples,make sure the OpenSSH-server package is installed on your system and use localhost as the name of the remote host.That way,your machine will create network connection with itself.

The SSH client program used to connect to remote SSH servers is called,appropriately(适当地) enough(顺理成章),ssh.To connect to a remote host named remoted-sys,we would use the ssh client program like so;

The first time the connection is attempted(试图,尝试),a message is displayed indicating that the authenticity of the remote host cannot be established.This is because the client program has never seen this remote host before.To accept the credentials(资格证书) of the remote host,enter"yes" when prompted.Once the connection is established,the user is prompted for his/her password:

After the password is successfully entered,we receive the shell prompt from the remote system:

The remote shell session continues until the user enters the exit command at the remote shell prompt,thereby closing the remote connection.At this point,the local shell session resumes(恢复) and the local shell prompt reappears.

It is also possible to connect to remote systems using a different user name.For example,if the local user "me" had an account named "bob" on a remote system,user me could log in the account bob on the remote systems as follows:

As stated before,ssh verifies(核实,查证) the authenticity of te remote host.If the remote host does not successfully authenticate,the following message appears:

This message is caused by onte of two possible situations.First,an attacker maybe attempting a "man-in-the-middle" attack.This is rare,since everybody knows that ssh alerts(使警觉地到,警告) the user to this.The more likely culprit(犯人,罪犯) is that the remote system has been changed somehow;for example,its operating system or SSH server has been reinstalled.In the interests of security and safety however,the first possibility should not be dismissed out of hand.Always check with the administrator of the remote system when this message occurs.

After it has been determined that the message is due to a benign(良性的,吉利的) cause,it is safe to correct the problem on the client side.This is done by using a text editor(vim perhaps) to remove the obsolete(老式的,废弃的) key from the ~/.ssh/known_hosts file.In the example message above,we see this:

(offending 不愉快的,厌恶的)

This means that line one of the known_host file contains the offending key.Delete this line from the file,and the ssh program will be able to accept new authentication credentials (资格证书) from the remote system.

Besides opening a shell session on a remote system,ssh also allows us to execute a single command on a remote system.For example,to execute the free command on a remote host named remote-sys and have the results displayed on the local system:

It is possible to use this technique in more interesting ways,such as this example in which we perform an ls on the remote system and redirect the output to a file on the local system:

Notice the use of the single quotes in the command above.This is done because we  do not want the pathname expansion performed on the local machine.;rahter,we want it to be performed on the remote system.Likewise,if we had wanted the output redirected to a file on the remote machine,we could have placed the redirection operator and the filename within the single quotes:

Tunneling With SSH

Part of what happens when you establish a connection with a remote host via SSH is that an encrypted tunnel is created between the local and remote systems.Normally,this tunnel is used to allow commands typed at the local system to be transimitted safely to the remote system,and for the results to be transmitted safely back.In addition to this basic function,the SSH protocol allows most types of network traffic to be sent through the encrypted tunnel,creating a sort of VPN(Virtual Private Network) between the local and remote systems.

Perhaps the most common use of this feature is to allow X Window system traffic to be transmitted.On a system running an X server(that is, a machine displaying a GUI),it is possible to launch and run an X client program(a graphical application) on a remote system and have its display appear on the local system.It's easy to do,here's an example:let's say we are sitting at a Linux system called linuxbox which is running an X server,and we want to run the xload program on a remote system named remote-sys and see the program's graphical output on our local system.We could do this:

After the xload command is executed on the remote system,its window appears on the local system.On some systems,you may need to use the "-Y" option rather than the "-X" option to do this.

Scp and sftp

The OpenSSH package also includes two programs that can make use of an SSH encrypted tunnel to copy files across the network..The first,scp(secure copy) is used much like the familar cp program to copy files.The most notable(值得注意的,显著的,著名的) difference is that the source or destination pathnames may be preceded(在...之前,先于) with the name of a remote host,followed by a colon character.For example,if we wanted to copy a document named document.txt from our home directory on the remote system,remote-sys,to the current working directory on our local system,we could do this:

As with ssh,you may apply a user name to the beginning of the remote host's name if the desired remote host account name does not match that of the local system:

The second SSH file copying program is sftp which,as its name implies(暗示,意味,隐含),is a secure replacement for the ftp program,sftp works much like the original ftp program that we used earlier;however,instead of transmitting everything in cleartext,it uses an SSH encrypted tunnel.sftp has an important advantage over conventional(依照惯例的,常规的) ftp in that it does not require an FTP server to be running on the remote host.It only requires the SSH server.This means that any remote machine that can connect with the SSH client can also be used as a FTP-like server.Here is a sample(样本,会话) session:

Tip:The SFTP protocol is supported by many of the graphical file managers found in Linux distributions.Using either Nautilus(GNOME) or Konqueror(KDE) ,we can enter a URI beginning with sftp://into the location bar(位置栏) and operate on files stored on a remote system running an SSH server.

An SSH Client For Windows?

Let's say you are sitting at a Windows machine but you need to log in your Linux server and get some real work done,what do you do?Get an SSH client program for your Windows box,of course !There are a number of these.The most popular one is probably PuTTY by Simon Tatham and his team.The PuTTY program displays a terminal window and allow a Windows user to open an SSH(or telnet) session on a remote host.The program also provides analogs(类似物,同类的) for the scp and sftp programs.

转载于:https://www.cnblogs.com/itmeatball/p/7617137.html

network system相关推荐

  1. 网络系统结构和设计的基本规则(Basic rules for network system architecture and design)

    网络系统结构和设计的基本规则(Basic rules for network system architecture and design) PSTN ( Public Switched Teleph ...

  2. 系统协调服务器,协调网络系统 Collaboration network system

    摘要: 在多路分散处理型网络中,能按所有可利用资源的各自处理能力适当分散作业,确保作业执行效率的协调网络系统. In multiple distributed processing network, ...

  3. Emergence、Cascading effect and Delay in network system

    Network system是有多个具有时空独立性和自治性的子系统(节点)构成的一个复杂系统,并且各子系统之间不断进行交互和通信. 网络系统具有很多特征,比如复杂性.自治性.交互性.不可预测性.涌现性 ...

  4. 中小型网络系统总体规划与设计(Small and medium-sized network system overall planning and design)

    中小型网络系统总体规划与设计 路由表容量 路由器的队列管理机制 EMP(Emergency Management Port) ISC(Internet Server control) NUMA(Non ...

  5. Data and system ownership in the CISSP

    https://resources.infosecinstitute.com/certification/data-and-system-ownership/ Data owner The term ...

  6. Poly Network被攻击事件中来自黑客的 25 段对话

    08-11-2021 20:07:35 交易 hash: https://eth.tokenview.com/cn/tx/0x87715ad26621431c2c27f44d9214798e0c81a ...

  7. Lab 6: Network Driver (default final project)

    Introduction 这个实验是你可以自己完成的默认期末项目. 现在你有了一个文件系统,任何操作系统都不应该没有网络栈.在这个实验中,你将编写一个网络接口卡的驱动程序.该卡将基于英特尔82540E ...

  8. php不可执行会怎样,从PHP运行可执行文件而不会产生shell

    回答你的话: 性能和安全性方面,最好不要在Web服务器进程和可执行文件之间调用一个shell. 关于表演,嗯,是的,PHP的内部叉,和壳本身分叉,所以有点沉重. 但是,你真的需要执行很多stream程 ...

  9. 35.2. Subversion 版本控制

    subversion 初始化 trunk branches releases tags svn co svn://127.0.0.1/document cd project mkdir trunk m ...

最新文章

  1. Linux shell字符串截取与拼接
  2. 同花顺怎么导出数据到excel_Excel怎么导出手机通讯录vCard文件
  3. Apache Camel 2.20发布–新增功能
  4. 介绍某现金贷平台的决策规则
  5. 王者荣耀AI即将上线,队友再也不用担心你掉线了
  6. putty秘钥转换成xhell支持的格式
  7. C语言连连看秒杀辅助
  8. 计算机怎么看事件管理,如何打开事件查看器 win7事件查看器打开及使用方法介绍...
  9. java ftp 250状态码_FTP状态码
  10. JavaScript 实现抢购倒计时,记录恋爱1314纪念日倒计时,输出对应的天数小时分钟秒数
  11. Flash和JS实现的图片幻灯片切换特效
  12. 【C/C++基础进阶系列】实战记录 -- Dump 文件生成与分析
  13. lambda表达式的3种写法
  14. 20190122——回首向来萧瑟处,无人等在灯火阑珊处。 Java责任链
  15. Python生成可执行文件.exe
  16. web前端学习(CSS篇)
  17. 线程与进程之间的共享资源
  18. [JVM]了断局: “运行时数据区“理论梳理
  19. oracle sql子串替换,【总结】Oracle sql 中的字符(串)替换与转换
  20. fitnesse java_从Fitnesse中学习Java单元测试

热门文章

  1. 13.基础实验(2)异步串口收发的实现
  2. ChatGPT会颠覆SEO内容创作吗
  3. 【Python爬虫9】Python网络爬虫实例实战
  4. 什么魔力要你升级到 MONGODB 6.0 (译)
  5. 菜鸟练手--通过接口配置VLAN
  6. 人工智能 | ShowMeAI资讯日报 #2022.06.05
  7. centos 没有nmtui命令_linux6怎么进入nmtui
  8. Pycharm 配置运行 Django 项目
  9. Z-score 标准化(standardization)
  10. COA-19-第四章 Integer Arithmetic