Go 语言是由 Google 开发的开源程式语言, 语法简单易用。以下会示范如何在 Ubuntu 安装 Golang, 以及编译一个 Go 语言的 “Hello World!” 程序。
在Ubuntu18.04系统中,如何安装golang?本文将针对此问题进行说明。
1.首先下载 golang 的二进制文件包
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
![]()
2.解压下载回来的压缩档, 并把二进制文件移动 /usr/local:
sudo tar -xvf go1.11.5.linux-amd64.tar.gz
sudo mv go /usr/local
![]()
![]()
3.然后设定 Golang 的环境参数, 一般需要设定 GOROOT, GOPATH 及 PATH
打开 .profile文件 :
添加以下内容
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

上面的设定分别是:
GOROOT: Golang 安装的目录.
GOPATH: 工作的目录, 储存程序的目录是 ~/go
保存 .profile 文件后, 执行以下指令让设定生效:
source ~/.profile
4.安装好 golang 后, 可以建立第一支 Go 语言的 “Hello World!” 程序
package main
import "fmt"
func main() {
fmt.Println("Hello, World!\n")
}
5.保存后执行

安装成功
1.通过web登录ESXI,依次选择“网络”→“端口组”→“添加端口组”,设置端口组名称和WLAN ID号之后,点击“添加”:


2. 依次选择“虚拟机”→“创建/注册虚拟机”:

3.选择“创建新虚拟机”→“下一页”:

4.输入虚拟机的名称,并选择操作系统的系列和版本(本文演示采用centos7系统,实际安装过程中,要根据实际情况进行选择),然后点击“下一页”:

5.选择虚拟机的存储位置,这里没什么可改的,点“下一步”:

6.设置虚拟机的CPU、内存、硬盘容量,然后点击硬盘左侧的箭头展开硬盘的详细配置,根据实际需求配置虚拟机硬盘的置备模式、IOPS、磁盘模式等:


7.设置完虚拟机硬盘,向下滑动鼠标滚轮,继续设置别的虚拟硬件,网络适配器根据实际需求进行选择:
;
8.CD/DVD驱动器选择“数据存储ISO文件”,此时会弹出“数据存储浏览器”对话框,点击左上角的“上载”将本次装机需要用到的ISO系统文件上传到ESXI的数据盘中,上传完成后,选中ISO系统文件,点击“选择”:



9.此时,重新回到“新建虚拟机”页面,检查下配置信息无误后,依次点击“下一页”、“完成”完成虚拟机的创建操作:



10.接下来,我们可以将虚拟机运行起来并安装操作系统,如下图所示,单击需要运行的虚拟机:

11.然后如下图红框所示启动虚拟机(打开电源),并打开虚拟机的会话页面,等操作系统安装完毕后,这台虚拟机就可以使用了:


1.netstat 是一个命令行工具,可以提供有关网络连接的信息。
要列出正在侦听的所有 TCP 或 UDP 端口,包括使用端口和套接字状态的服务,请使用以下命令:
sudo netstat -tun
此命令中使用的选项具有以下含义:
-t - 显示 TCP 端口。
-u - 显示 UDP 端口。
-n - 显示数字地址而不是主机名。
-l - 仅显示侦听端口。
-p - 显示进程的 PID 和名称。仅当您以 root 或 sudo 用户身份运行命令时,才会显示此信息。

2.如果要过滤结果,请使用 grep 命令。例如,要查找在 TCP 端口 22 上侦听的进程,请键入:
sudo netstat -tnlp | grep :22

3.如果输出为空,则表示没有任何内容正在侦听端口。例如:
sudo netstat -tnlp | grep :80

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。
其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
Ubuntu18.04系统系统如何搭建FTP?本教程以Ubuntu18.04系统为例进行图文说明,本配置适用于Ubuntu16.04和Ubuntu18.04版本。
以下为操作步骤:
1.更新软件包信息(apt是本地存了一份软件包信息的列表,比如软件大小,版本号,依赖等。)(若更新不了的话编辑vi /etc/apt/sources.list 在末尾添加源后保存退出。)
sudo apt-get update
2. 目前Linux上使用较多的ftp服务器是vsftpd。需要先安装vsftpd软件。在Ubuntu上安装vsftpd使用的命令是
sudo apt-get install vsftpd
3.安装完成后查看vsftpd服务状态
systemctl status vsftpd

4.修改vsftpd配置文件,anonymous_enable=YES允许匿名访问
sudo vi /etc/vsftpd.conf

5.修改之后重启vsftpd服务
sudo systemctl restart vsftpd
6.Ubuntu预设的FTP server 目录是在/srv/ftp
建立一个目录和文件进行测试
cd /srv/ftp
sudo touch test.txt
sudo mkdir test
7.在文件管理的地址栏填入ftp://服务端IP

如图所示,搭建完成
1.查看Linux内核版(2种方法)
cat /proc/version

uname -a
![]()
2.查看Linux系统版
cat /etc/redhat-release(这种方法只适合Redhat系的Linux)

一般情况下,以太网端口可以划分为两种链路类型:access 和trunk。
Access类型的端口:只能属于1个VLAN,一般用于连接计算机(或路由器)的端口;
Trunk类型的端口:可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间互联的端口。
1.交换机接口access模式处理出入数据的过程如下:
1.1Access端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省);
(Access接受并转发的数据包必须是无VLAN信息的数据包)
1.2Access端口发报文:
将报文的VLAN 信息剥离,直接发送出去。
(Access发送的数据报必定是无VLAN信息的数据包)
1.3总之,access 端口可接受并转发来自外界的无VLAN信息数据包——从一个access口进入并打上VLAN标记,然后在交换机内转交给相同VLAN的access口,最后去掉标记从该access口转发出去。如下图所示,PC2与PC3能够相互ping通,PC1与PC2,PC3不能ping通,与上述结论相符合。

2.交换机接口trunk模式处理出入数据的过程如下:
2.1Trunk端口收报文:
收到一个报文,判断是否有VLAN信息;
如果有,判断该trunk端口是否允许该VLAN的数据进入;
如果可以则转发,否则丢弃;
如果没有VLAN信息则打上端口的PVID,并进行交换转发。
(可以将trunk口看做是access口功能上的扩充,对于有VLAN信息的数据包Access直接丢弃,而Trunk则会对有指定VLAN的数据包直接转发)
2.2Trunk端口发报文:
比较将要发送报文的VLAN信息和端口的PVID;
如果不相等则直接发送;
如果两者相等则剥离VLAN信息,再发送。
Access口发数据包时对所有数据包去除VLAN信息,而trunk只对与自己端口PVID相等(trunk默认PVID与VLAN1相等)的数据包去VLAN信息,其他则直接转发)。
2.3总之,结合trunk口接受与发送数据包特点,可以得出经双绞线相连的一对trunk口或同一交换机上的两个trunk口可以将数据包(有或无VLAN信息)原封不动的从一端传到另一端。如下图所示,PC1-PC3;PC2-PC6;PC4-PC5之间可以ping通,与上述总结相符合。

拓扑如下图所示:

开启R1、R2、SW1,并运行OSPF,根据选举规则R2将成为DR,R1成为BDR:

然后将R3启动并运行OSPF,查看DR和BDR:

发现R3加入后,DR和BDR没有变动,验证了DR和BDR选举的非抢占性,当网络中有DR存在时,即使有优先级高的,Router-ID大的路由器加入网络也不会进行重新选举。
如果要让R3成为DR,可进行下述操作:
方法1:重启现在为DR的R2的OSPF进程,触发重新选举
<R2>reset ospf 1 process

R3从BDR->DR,而且也把Router-ID第二大的R2选为了BDR。
方法2:把R1和R2的优先级设置为0(不参与选举)
我们先让R3恢复DRother身份
[R3-GigabitEthernet0/0/0]shutdown
先shutdown后等40s路由器失效再undo shutdown
[R3-GigabitEthernet0/0/0]undo shutdown
这样又让R2成为了DR,R1成为了BDR
[R1-GigabitEthernet0/0/0]ospf dr-priority 0
[R2-GigabitEthernet0/0/0]ospf dr-priority 0
将R1和R2的OSPF的dr都优先级置为0(不再参与选举)
触发两次选举,R3从Drother->BDR->DR
由于R1和R2都不参与选举,此时网络中只有DR没有BDR
将R2优先级调为1,让R2成为BDR。
1.首先进入BIOS,通过键盘上下左右键来控制选项,选择Power Management主选项,选择第一项Rsstore AC power loss,默认是关闭。

2.需要把关闭设置为启动,按回车进行选择。

3.还得设置启动的时间,启动时间在最后一项,默认也是不允许设置(Disabled)

4.按住键盘上的Enter键,把选项改为Enabled

5.会看到可以唤醒天、时、分、秒,我默认设置的都为0,可以随时唤醒。

1.开启华为交换机ntp服务
undo ntp-service server disable

2.设置交换机的时区为东八区
clock timezone BeiJing add 08:00:00
![]()
3.设置交换机同步的ntp-server服务器(此教程使用的是阿里的ntp服务器1)
ntp-service unicast-server 120.25.115.20

配置完成后可以查看交换机时间

可以看见同步了成了正确的北京时间
附:国内外常用ntp服务器
NTP 服务器列表
Windows系统上自带的两个:time.windows.com 和 time.nist.gov
MacOS上自带的两个:time.apple.com 和 time.asia.apple.com
NTP授时快速域名服务:cn.ntp.org.cn
1、阿里云授时服务器
#NTP服务器
ntp.aliyun.com
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
#Time服务器
time1.aliyun.com
time2.aliyun.com
time3.aliyun.com
time4.aliyun.com
time5.aliyun.com
time6.aliyun.com
time7.aliyun.com
2、国内大学授时服务器
s1c.time.edu.cn 北京大学
s2m.time.edu.cn 北京大学
s1b.time.edu.cn 清华大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
3、国外授时服务器
#苹果提供的授时服务器
time1.apple.com
time2.apple.com
time3.apple.com
time4.apple.com
time5.apple.com
time6.apple.com
time7.apple.com
#Google提供的授时服务器
time1.google.com
time2.google.com
time3.google.com
time4.google.com
可以ping下地址获取到对应 ip
