zoukankan      html  css  js  c++  java
  • 【实践总结】给Centos和Ubuntu设置静态网络IP以及配置ssh功能

    作为一名以Windows平台为主的开发者,在接触和使用Linux系统的过程中总会遇到一系列的问题。每当这时候,我相信大部分人是和我一样的处理办法,就是网上各种搜索尝试直到问题解决为止,而有些问题,前后不止会遇到一次 ,每次遇到每次搜索。因为在Linux上基本都是使用命令行操作,各种命令、工具、配置、路径等等不可能完全记得住,借助搜索引擎也是可以理解,但是网上的东西杂乱无章,开放性的问题(例如网络不通)通常难以匹配到完美的解决办法,总结一套自己的办法就显得尤为重要了。网络配置和ssh服务是Linux非常基础的功能,很多时候这2个东西搞不起来后面的事情都进行不下去,趁着最近又重新把这部分实践了一次,中间也遇到了一些问题,这里记录一下过程以防日后再次掉坑。

    以下步骤的环境均是在win10系统中使用VMware Workstation搭建的虚拟机,实测通过。

    1、准备工作

    VMware安装好后会在本地创建2个虚拟网络适配器VMnet1和VMnet8,本文介绍的配置方法是使用NAT模式,所以虚拟机要选择使用VMnet8这个网卡:

    除此之外,还要配置VMnet8所在的网段(划重点,要考的):

    这里设置的子网ip和网关和宿主机没有关系,可以自己随意设置。

    ##这里我的配置给自己挖了一个坑。。。后面说到

     

    2、Ubuntu

    开启虚拟机登录到系统中。

    ubuntu的网络配置文件地址是/etc/network/interfaces,所以我们编辑这个文件:

    sudo vim /etc/network/interfaces

    然后按insert键进入编辑模式,在文件中输入:

    iface lo inet loopback
    auto ens33
    iface ens33 inet static
    address 192.168.174.1
    netmask 255.255.255.0
    gateway 192.168.174.2

    这里的ens33是虚拟机的网卡名称,如果不知道自己的网卡名称,可以输入命令ifconfig来查看。第3行中的static即表示使用静态ip配置,相对应的是dhcp(动态配置),address是要设置的ip地址,必须是在前面VMnet8所设置的网段中,剩下的网关和子网掩码和VMnet8的一致。

    编辑完之后,按ECS退出编辑,再输入:wq回车保存文件退出,输入sudo  /etc/init.d/networking restart或者sudo service networking restart重启网卡(不行就reboot重启机器),ifconfig查一下ip是否已经生效。

    试一下网络通了没:

    ping www.baidu.com

      

    提示unkown host,原因是没有配置DNS地址,查看一下DNS配置文件:

    cat /etc/resolv.conf

    这里面空空如也,但是却不能直接在这个文件里配置,因为注释里面写了:该文件是resolvconf程序动态创建的,如果手动编辑的话将会配覆盖。那么如何设置DNS呢,有2种办法。

    第一种是在interfaces中设置一个dns-nameservers参数:

    dns-nameservers 8.8.8.8

    第二种是设置dns的配置文件:

    sudo vim /etc/resolvconf/resolv.conf.d/base

    在这个文件中加入:

    nameserver 8.8.8.8

    退出保存后重启网卡,重新ping一下百度域名,连网成功了。

    重新查看resolv.conf,DNS已经设置成功。

    这里的8.8.8.8是谷歌提供的DNS服务,其他的供应商地址可以参考以下图片(来自于网络):

    再ping一下宿主机地址,也没问题:

    于是开始安装ssh:

    sudo apt-get install openssh-server

    启动ssh:

    sudo service ssh start

    查看是否启动成功:

    一切准备就绪,满心欢喜地打开xshell准备连接虚拟机,却发现怎么都连不上:

    Connecting to 192.168.174.1:22...
    Could not connect to '192.168.174.1' (port 22): Connection failed.

    检查22端口也已经开启,其他配置也都正常。

    尝试ping一下虚拟机,发现请求超时:

    网上各种搜索,最后怀疑是虚拟网卡的ip设置问题,ipconfig查看网卡信息确实有问题:

    查看VMnet8的ip配置,发现是DHCP自动获取的,于是手动指定一个IP和网关,与前面VMware网络编辑器中的一致(划重点,要考的):

      

    再重新ping一下虚拟机地址192.168.174.1,终于正常了。再次使用xshell连接,发现还是不行,怀疑是机器本身环境的问题,于是新开一台虚拟机,ip设置为192.168.174.3,其他全部和前面的一致,xshell连接成功。回头再次折腾第一台机器,修改ip为192.168.174.4,问题解决。

    那么问题来了,网关是174.2,174.3和174.4都可以,偏就174.1不行,啥原因?

     

    3、Centos

    由于都是基于Linux内核,所以centos的配置也大同小异。在centos中,每个网关对应了自己的配置文件,所以第一步先查看网卡名称找到需求修改的配置文件:

    ip addr
    
    或者
    
    ifconfig

    配置文件的存放路径是/etc/sysconfig/network-scripts,我这里的网卡名称是ens33,所以对应的配置文件是ifcfg-ens33,开始修改文件:

    sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

    新增或替换以下配置项:

    BOOTPROTO="static" 
    ONBOOT="yes" #开机启用
    IPADDR=192.168.174.5 
    GATEWAY=192.168.174.2
    NETMASK=255.255.255.0 
    DNS1=8.8.8.8 

    各项参数的意义和ubuntu中的一致。然后重启网络服务:

    sudo systemctl restart network
    
    或者
    
    sudo service network restart

    再次ip addr,发现ip已经生效。然后ping宿主机和ping百度,一切都正常:

    开始安装ssh服务:

    sudo yum install openssh-server

    修改配置文件:

    sudo vim /etc/ssh/sshd_config

    Port=22的注释去掉,如果要使用root用户登录,就把PermitRootLogin设置为yes,:wq保存退出。启动ssh:

    sudo systemctl start sshd.service

    加入开机自启动:

    sudo systemctl enable sshd.service

    打开xshell连接,OK。

     

    4、总结

    经历了前面基础工作的铺垫,centos配置起来非常顺利,总结一下主要有以下几个重点:

    • 虚拟网卡VMnet8、VMware网络配置、虚拟机网络配置这几处的网段和网关要一致,基本能避免90%以上异常。

    • 重启服务甚至重启系统来使配置生效。

    • 如果配到后面怎么都不行,把网络编辑器恢复到默认设置然后重新开始。

  • 相关阅读:
    第4章 函数
    第3章 文件处理和函数
    第2章 数据类型
    第 8章 面向对象补充和网络编程
    第7章 面向对象
    第6章 常用模块
    第 5 章 函数的补充和模块加载
    git 使用命令提交文件
    jquery 读取本地json文件数据
    mpvue 封装api请求接口
  • 原文地址:https://www.cnblogs.com/hohoa/p/11409806.html
Copyright © 2011-2022 走看看