作为一名以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:...
Could not connect to '192.168.174.1' (port ): 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%以上异常。

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

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

【实践总结】给Centos和Ubuntu设置静态网络IP以及配置ssh功能的更多相关文章

  1. Linux - ubuntu 设置固定ip和设置dns

    ubuntu 设置固定ip和设置dns 1.ifconfig 查看网卡名称 root@jiqing-virtual-machine:~# ifconfig ens32 Link encap:以太网 硬 ...

  2. centos 7.3 设置静态IP

    注:本文来源:张亮博客  的 <centos 7.3 设置静态IP或ping 报name or service not known> 首先把虚拟机配置为桥接模式,然后开启再你打算修改虚拟机 ...

  3. 虚拟机设置静态IP与配置网络

    不废话,直接上图 一:先配置虚拟机的网络 二:配置win10-VM8网络 三:查看以太网的ip信息,直接在管理员命令中输入 ipconfig /all可以到连接信息 四:如果在上面找不到VM8的网络信 ...

  4. centos或者ubuntu设置ssh免密码登陆

    1. 输入  # ssh-keygen -t rsa -P ""  然后一路回车 2.输入  # cat ~/.ssh/id_rsa.pub >> ~/.ssh/aut ...

  5. CentOS 6.5设置静态IP教程 并且可以ping通

    CentOS6.5掉电或重启,它的IP会被DHCP重新分配,如果要远程控制这台电脑,不得不去打开显示器去查看它的新IP,这样太麻烦了.于是需要将这台电脑的IP设置成静态的. 网上常规的设置静态ip的方 ...

  6. Ubuntu 设置静态 IP

    一.背景 如果没有设置静态IP,由于某些情况,会导致系统的 IP 地址发生变化. 为了避免 IP 发生变化,就需要进行静态 IP 的设置. 注:这里 Ubuntu 版本为 19.10 二.解决方案 1 ...

  7. Vmware安装Centos NAT方式设置静态IP

    [Vmware中在搭建集群环境等,DHCP自动获取IP方式不方便,为了固定IP减少频繁更改配置信息,建议使用静态IP来配置,网络连接主要有三种方式 1.nat 2.桥接,3主机模式 ,在这里主要介NA ...

  8. ubuntu设置静态ip

    设置固定ip地址 >>>>>>>>>> ifconfig -a,  (注:p1p1为网卡名称) 配置静态ip vim /etc/networ ...

  9. 虚拟机ubuntu设置静态IP与主机、外网互ping配置流程

    方案一.VMnet8(NAT模式) 1.选择自定义模式,VMnet8(NAT模式) 2.进入虚拟机,设置静态IP之前确认三者可互ping通,命令ifconfig,查看当前的IP 3.主机通过命令ipc ...

随机推荐

  1. I/O的简介

    文本我们能读懂的都可以认为是字符流,文章 java文件都是字符流数据 流的分类 输入流 输出流 1.输出流 Writer:关于字符流的父类,抽象类.与之相对的输入流 Reader类 一.字符流 字符流 ...

  2. TensorFlow笔记-模型的保存,恢复,实现线性回归

    模型的保存 tf.train.Saver(var_list=None,max_to_keep=5) •var_list:指定将要保存和还原的变量.它可以作为一个 dict或一个列表传递. •max_t ...

  3. [PTA] 数据结构与算法题目集 6-11 先序输出叶结点

    //函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结点,格式为一个空格跟着一个字符. void PreorderPrintLeaves(BinTree BT) { ...

  4. Oracle RAC运维所遇问题记录一

    Oracle11gR2,版本11.2.0.4集群测试环境运行正常 主机名:rac1,rac2 hosts文件: # Public172.17.188.12 rac1172.17.188.13 rac2 ...

  5. Ambassador,云原生应用的“门神”

    目前,行业内基于云原生思想的开源项目,重点在于管理.控制微服务以及微服务架构下服务之间的通信问题.它们有效的解决了“服务异构化”.“动态化”.“多协议”场景所带来的east/west流量的管控问题,而 ...

  6. css清除select默认的样式

    select在firefox与chrome的显示是不一样的,我们一般选择通过css清除掉css的默认样式,然后再增添自定义的样式来解决,css我们一般用这么几行代码来清除默认样式: 1 select ...

  7. 前端js性能优化的要点

    1 尽量少使用全局查找,比如全局变量,如果要多次使用,可以将全局变量存为局部变量再使用 eg:function(){ var body=document.body; alert(body): body ...

  8. http状态码 400-499

    类比 服务器:便利店 客户端:客人 http报文:中文语言+钱 400-499 客户的错误 400 :服务器不理解客服端请求的意思是什么,如请求报文损坏 举例: 客户端:@#!3&* 服务器: ...

  9. 实用小工具推荐 OpenWrite

    [实用小工具推荐]给技术同学们推荐一款比较好用的工具,可以实现一稿多发,主流的技术渠道基本涵盖了:https://www.openwrite.cn/ 因为工作的关系,认识了很多做技术公众号的小伙伴,同 ...

  10. 跟着大彬读源码 - Redis 9 - 对象编码之 三种list

    目录 1 ziplist 2 skiplist 3 quicklist 总结 Redis 底层使用了 ziplist.skiplist 和 quicklist 三种 list 结构来实现相关对象.顾名 ...