CentOS7-1810 系统Samba配置说明

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件。SMB(Server Messages Block,信息服务块)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议,是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

NFS针对 Unix-Like系统的机器间文件的共享;
 
CIFS针对windows系统间文件的共享;
 
SAMBA针对Unix-Like系统和windows系统间文件的共享;

因为SMB协议是基于客户机/服务器型的协议,所以一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。

在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。如果你要使用Linux和早期的windows系统共享文件,请确认你的windows系统下是否安装了NetBIOS协议。
NetBios, NetBios over TCP/IP, SMB 之间的关系可以查看这个网址https://www.cnblogs.com/pipci/p/10144840.html

Samba是一套程序,其中最重要的两个进程是nmbd和smbd:

smb:提供SMB / CIFS服务(文件共享和打印)的守护进程,使用SMB协议与客户进行连接,完成用户认证,权限管理和文件共享任务。
nmb:提供NetBIOS名称服务的守护进程,可以帮助客户端定位服务器和域,相当于WindowsNT中的WINS服务器,如果只是单纯的共享文件可以关闭这个服务,这样就不用在防火墙中开发137、138端口,但是在Windows中“桌面”上的“网络”里不会在显示共享的主机,只能通过“运行” 打开 \\IP 的方式连接到共享的目录。


SAMBA所需的软件:

1、samba:这个软件主要包含了SAMBA的主要服务程序(smbd及nmbd),SAMBA相关的文件,以及其它与SAMBA相关的logrotate配置文件及开机默认选项文件等。

2、samba-common:这个软件主要提供了SAMBA的主要配置文件(smb.conf),smb.conf语法检验的测试程序(testparm)等。

3、samba-client:这个软件则提供了当Linux做为SAMBA Client端时,所需要的工具指令,例如Smbmount命令用于Linux下挂载Windows共享文件等。


一、samba相关软件安装
———————————————————————–
[root@CentOS7 ~]# yum install samba     #同时会一起把samba-common软件一起安装

[root@CentOS7 ~]# yum install samba-client
———————————————————————–

二、查看nmb和smb服务的状态,并设置开机启动

1、查看服务状态,如果没有启动启动他
——————————————————
[root@CentOS7 ~]# systemctl status smb.service             #查看
[root@CentOS7 ~]# systemctl status nmb.service

[root@CentOS7 ~]# systemctl start smb.service              #启动
[root@CentOS7 ~]# systemctl start nmb.service
——————————————————

2、设置服务器开机启动
——————————————————
[root@CentOS7 ~]# systemctl enable smb.service
[root@CentOS7 ~]# systemctl enable nmb.service
——————————————————

三、Samba服务器配置

在安装了Samba服务软件后,会自动在Linux系统中生成一系列的配置文件,了解它们的用途是配置Samba服务器所必须的。

1、主要配置文件 /etc/Samba/smb.conf
这是Samba服务的主配置文件,文件由一系列段和选项构成.一个段由一对方括号中的段名开始,直到下一个段名结束,主要由全局设置(Global Settings)和共享定义(Share Definitions)两部分组成。其中全局设置定义了对影响整个Samba系统运行的全局选项,用于设置整个系统的规则,如果在其他段中没有再对这些选项进行重新设置的话,就以全局选项为主:共享定义则是对系统中共享资源进行定义,该部分可以由多个段组成,其中常见的包括:用户主目录段,共享目录和打印机段,每个段中可以再定义详细的共享选项。smb.conf文件的格式如下所示:
—————————————————————————-

#======================= Global Settings =======================

[global]      #全局选项  

#======================= Share Definitions =======================

[homes]       #共享选项
   
[printers]    #共享选项
 
—————————————————————————–
smb.conf配置文件中使用;号和#号作为注释符,凡是使用这两个符号开头的行都会被Samba视为注释行而忽略处理,这个配置文件中,大小写是没关系的,因为Windows不分大小写。配置文件中选项的格式如下所示。
————————-
选项名称 = 选项值
————————-
四、常用的全局选项及说明如下所示

先说一下samba定义的变量:
%S = 当前服务名(如果有的话)
%P = 当前服务的根目录(如果有的话)
%u = 当前服务的用户名(如果有的话)
%g = 当前用户说在的主工作组
%U = 当前对话的用户名
%G = 当前对话的用户的主工作组
%H = 当前服务的用户的Home目录
%v = Samba服务的版本号。
%h = 运行Samba服务机器的主机名
%m = 客户机的NETBIOS名称
%L = 服务器的NETBIOS名称
%M = 客户机的主机名
%N = NIS服务器名
%p = NIS服务的Home目录
%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 当前服务进程的ID
%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)
%I = 客户机的IP
%T = 当前日期和时间

1、workgroup
该选项设置Samba服务器所属工作组名称,通过网上邻居可以从该工作组中找到该Samba服务器。默认设置如下:

workgroup = WORKGROUP
——————————————————-
2、wins support
该选项设置Samba服务器是否作为WINS服务器。如果要启用该选项,则不能设置wins server选项,默认设置如下:

#   wins support = no
选项默认都是被注释掉了
——————————————————-
3、wins server

该选项指定WINS服务器的IP地址或主机名。默认设置如下:

;   wins server = w.x.y.z
选项默认都是被注释掉了
——————————————————-
4、interfaces 和bind interfaces only = yes
如果服务器有多个IP地址或网络接口,可以使用interfaces选项把IP地址或网络接口列出来。如果bind interfaces only选项设置为yes,则表示Samba将绑定(监听)interfaces选项所设置的IP地址或网络接口,只通过这个些IP地址或网络接口提供服务,默认设置如下:

;   interfaces = 127.0.0.0/8 eth0

;   bind interfaces only = yes
上面两个选项默认都是被注释掉了
——————————————————-
5、dns proxy
该选项设置是否启用DNS代理功能,默认设置如下:

dns proxy = no
——————————————————-
6、log file
该选项用来设置Samba日志文件的存放位置和文件名称,默认设置如下:

log file = /var/log/samba/log.%m
这个选项中的.%m是Samba配置文件的保留变量,表示客户端的NetBIOS名称。
——————————————————-
7、max log size
日志文件最大能达到多少Kbytes,如果超过该限制,则Samba自动在当前的日志文件名后面加上“.old”然后创建一个新的日志文件继续写入。如果为0,则表示没有大小限制。默认设置如下:

max log size = 1000
——————————————————-
8、syslog only
设置Samba只通过syslog进行日志记录。默认设置如下:

#   syslog only = no   
默认这个选项被注销掉
——————————————————-
9、syslog
syslog的日志级(0,err)(1,warning)(2,notice)(3,ifno)(4或以上,debug)。默认设置如下:

syslog = 0
——————————————————-
10、server role
服务器角色。定义Samba将以何种模式操作。可能的值是“独立服务器”、“成员服务器”、“经典主域服务器”、“经典备份域控制器”、“活动目录域控制器”,默认设置如下:

server role = standalone server
——————————————————-
11、passdb backend
密码数据库格式,之前samba服务器的用户信息都是以数据文件信息存放,为了加快速度, 目前密码文件已经转为使用数据库了! 默认的数据库格式为tdbsam ,存放在/var/lib/samba/private/passdb.tdb,早期使用smbpasswd命令来管理用户密码, 后来使用 TDB 数据库,因此建议使用新的 pdbedit 指令来管理用户数据smbpasswd仍然可以使用。默认设置如下:

passdb backend = tdbsam
——————————————————-
12、obey pam restrictions
在Samba中集成PAM的访问控制功能。默认设置如下:

obey pam restrictions = yes
——————————————————-
13、 unix password sync = yes
当用户改变samba加密的密码时,SAMBA会试着更新UNIX用户密码。默认设置如下:

unix password sync = yes
——————————————————-
14、passwd program
这个就指定更改密码的命令。默认设置如下:

passwd program = /usr/bin/passwd %u
——————————————————-
15、passwd chat
更改密码时的对话。默认设置如下:

passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
——————————————————-
16、pam password change
为samba打开pam改变密码控制机制的支持。默认设置如下:

pam password change = yes

——————————————————-
17、map to guest
这个配置的意思是将所有samba系统主机所不能正确识别的用户都映射成guest用户。默认设置如下:

map to guest = bad user
——————————————————-
18、usershare max shares
最大用户共享数量,0表示禁用用户共享。默认设置如下:
 
usershare max shares = 100
——————————————————-
19、usershare allow guests
是否允许guest用户访问,这相当于在共享定义中设置guest ok = yes选项,最终以共享中的设置为准。

usershare allow guests = yes
——————————————————-

以下是smb.conf配置文件中没有提到的,但是可以通过testparm -v 命令查看到默认设置,如果不符合自己的实际设置,可以在配置文件中加入相应
的选项。
——————————————————-
20、netbios name = CENTOS7

设置Samba Server的NetBIOS名称,在“网上邻居”中显示的主机名,如果不填,则默认会使用该服务器的DNS名称的第一部分。
——————————————————-
21、server string = Samba 4.8.3

设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
——————————————————-
22、hosts allow = 127. 192.168.1. 192.168.10.1
设置允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。这选项也可以
在共享段起作用,只对某个共享的目录单独起作用。

hosts deny 与hosts allow 刚好相反。

ALL 表示所有用户,例如:hosts allow = ALL

EXCEPT 表示排除,例如:允许除192.168.1.100以为的所有主机访问,格式为 hosts allow = ALL EXCEPT 192.168.1.100

——————————————————-
23、max connections = 0

max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
——————————————————-
24、deadtime = 0

deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
——————————————————-
25、time server = yes/no

time server用来设置让nmdb成为windows客户端的时间服务器
——————————————————-
26、security = user

设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
2. domain:域安全级别,使用主域控制器(PDC)来完成认证。
3. auto:这是Samba中的默认安全设置,Samba会通过服务器角色参数(如果设置)来确定安全模式。
4. ads:在此模式下,Samba将充当ADS领域中的域成员

在samba4中share 和 server验证方式已被弃用
——————————————————-
27、encrypt passwords = yes/no

是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
——————————————————-
28、username map = /etc/samba/smbusers

用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
——————————————————-
29、guest account = nobody

用来设置Samba中guest用户对用的系统用户名。
——————————————————-
30、load printers = yes/no

设置是否在启动Samba时就共享打印机。现行几乎都是网络打印机了,默认关闭就可以,这里也不讨论打印机的问题。
——————————————————-
31、 smb ports = 139 445
指定服务监听SMB流量的端口。

五、常用的共享选项及说明


在该段中指定了一个通过Samba进行共享的目录,定义用户访问该目录的各种设置。如下所示:

[共享名称]:这个共享名称很重要,它是一个代号而已,用户在“网上邻居”中所看到的共享目录名

comment = 任意字符串
说明:comment是对该共享的描述,可以是任意字符串。
 
path = 共享目录路径
说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。
 
browseable = yes/no
说明:browseable用来指定该共享是否在“网上邻居”中可见。
 
writable = yes/no
说明:writable用来指定该共享路径是否可写。

read only = yes/no
说明:设置共享目录为只读,这个选项和writable是互斥的,最好不要两个同时出现如果同时出现,那么最后出现的那个设置为主要的设置。
 
available = yes/no
说明:available用来指定该共享资源是否可用。
 
admin users = 该共享的管理者
说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。
 
valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
 
invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
 
write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = bobyuan,@bob
 
public = yes/no
说明:public用来指定该共享是否允许guest账户访问。
 
guest ok = yes/no
说明:意义同“public”。

create mask = 0700
说明:指定用户通过Samba在该共享目录中创建文件的默认权限。0600代表创建文件的权限为rw——-

directory mask = 0700
说明:指定用户通过Samba在该共享目录中创建目录的默认权限。0600代表创建目录的权限为rwx——


更多设置参考官方文档
https://www.samba.org/samba/docs/man/


六、配置文件生效与检验
1、与大部分程序配置文件一样,smb.comf文件被修改后并不会立刻生效,需要重启smbd和nmbd服务。在完成配置文件我们需要用testparm命令来验证文件的格式是否正确,命令如下:

[root@CentOS7 ~]# testparm
参数
-v:查阅完整的参数设置,连同默认值也会显示出来

——————————————————
[root@CentOS7 ~]# testparm      #进行检测
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The “syslog” option is deprecated
Processing section “[homes]”
Processing section “[printers]”
Processing section “[print$]”
Loaded services file OK.         #如果格式没有问题将不会看到任何错误信息,如果这行的前面有Unknown parameter encountered:字样的提示就说明有错误。
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions      #回车后将会显示smb.conf文件当前的配置内容

# Global parameters
[global]
    printcap name = cups
    security = USER
    workgroup = SAMBA
    idmap config * : backend = tdb
    cups options = raw
       —-后面的省略—-
——————————————————–
如果输出中没有任何错误或警告信息,表示文件格式没有问题。否则,输出结果中将会给出错误的地方以及错误的原因。

2、重启服务
———————————————————
[root@CentOS7 ~]# systemctl restart smb.service
[root@CentOS7 ~]# systemctl restart nmb.service
———————————————————

七、Samba用户管理
Samba的用户是与操作系统的用户联系在一起的,在创建Samba用户前,必须先添加一个与之同名的操作系统用户。也就是说Samba的用户必须是操作系统中已经存在的用户,但两者的密码可以不相同。在来说下用户在Windows系统下通过Samba访问Linux系统的权限问题,当我们需要通过Samba所提供的功能来进行Linux的访问时,Linux上面的文件或目录是否可读写还要取决于Linux系统上的用户是否对该文件可读写,所以在Windows上访问Samba服务器时,要看Samba对应的用户对Linux系统的文件是否可读写,同时Samba配置文件也会限制读写权限。例如:当Samba用户A要对Linux上面的T文件进行写的时候,smb.conf的配置文件中的共享设置要具有可写的权限,A用户对应的Linux用户也要对T文件有写的权限。

Samba用户通过pdbedit命令进行管理。命令用法如下:

[root@CentOS7 ~]# pdbedit 参数

参数:
 –a username:新建Samba账户。
 –x username:删除Samba账户。
 –L:列出Samba用户列表,读取passdb.tdb数据库文件。
 –Lv:列出Samba用户列表的详细信息。
 –c “[D]” –u username:暂停该Samba用户的账号。
 –c “[]” –u username:恢复该Samba用户的账号。

举例:
—————————————————————————
[root@CentOS7 ~]# pdbedit -a root               #创建root用户
new password:
retype new password:
Unix username:        root
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-581854895-1790122719-2797274960-1000
Primary Group SID:    S-1-5-21-581854895-1790122719-2797274960-513
Full Name:            root
Home Directory:       \\centos7\root
HomeDir Drive:        
Logon Script:         
Profile Path:         \\centos7\root\profile
Domain:               CENTOS7
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    五, 21 12月 2018 11:45:14 CST
Password can change:  五, 21 12月 2018 11:45:14 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

[root@CentOS7 ~]# pdbedit -L              #查询目前已经存在的Samba帐号
root:0:root

[root@CentOS7 ~]# smbpasswd root         #通过smbpasswd命令修改帐号密码
———————————————————————–

如果要添加额外的Samba用户帐号,若该帐号原本不存在,则先使用useradd添加系统帐号,再通过pdbedit -a命令添加Samba用户帐号。

八、用户映射
由于Samba用户必须要与操作系统用户同名,出于系统安全或使用习惯的考虑,我们可以把上面的root用户映射为administrator用户或admin用户,映射后就无需在添加administrator或admin用户了,也可以防止Samba用户通过Samba帐号来猜测操作系统用户的信息。映射后的用户其权限和密码都和root一样,映射步骤如下:

1、编辑smb.conf文件,在[global]部分添加用户映射文件(该文件由用户手动创建,可以把他放在系统可以访问的任何位置),添加内容如下所示:

username map = /etc/samba/smbusers           #一般文件都放在这里

2、手动创建用户映射文件/etc/samba/smbusers ,该文件的格式如下:

Samba用户帐号 = 需要映射的用户列表

列表中的用户名之间以空格进行分割,如下所示。

[root@CentOS7 ~]# vi /etc/samba/smbusers

root = administrator admin

3、重启mbd和mbd服务

添加上面的选项可能有问题Centos7 1810测试,就是添加完以后即使允许不需要密码访问,也得先提供密码登录。Debian9.5就没问题

九、配置实例

1、不需要密码的共享,我们有时候需要将某个目录共享给所有人访问,要求/home/share1目录所有人都可以读写,/home/share2目录所有人只读,我们需要先把这两个目录的权限给成777,这样任何人才可以对目录进行操作,smb.conf配置文件如下:

———————————————————————–

#======================= Global Settings =======================

[global]

   workgroup = WORKGROUP

   netbios name = SAMBA-CENTOS7

   dns proxy = no
 
   security = user

   passdb backend = tdbsam

   map to guest = bad user            #这行很重要决定任何用户是否可以访问                  

   load printers = no

#======================= Share Definitions =======================

[share1]
   comment = guest
   browseable = yes
   path = /home/share1
   available = yes
   guest ok = yes
   writable = yes
   create mask = 0700
   directory mask = 0700

[share2]
   comment = guest
   browseable = yes
   path = /home/share2
   available = yes
   guest ok = yes
   read only = yes

   
 ———————————————————————–  

十、防火墙设置
Samba中默认会启用多个端口,这包括数据传输的TCP端口139,445,以及进行NetBIOS名称解析之类工作的UDP端口137,138,我们如果只是为了传输数据可以只开放445端口,前提是smb ports = 的选项中有445端口,我们也可以配置smb ports = 445 ,这样Samba就只监听445端口,这样配置完在Windows中“桌面”上的“网络”里不会在显示共享的主机,只能通过“运行” 打开 \\IP 的方式连接到共享的目录。防火墙具体的配置命令这里就不说了。

查看smb ports选项默认设置的端口:
[root@CentOS7 ~]# testparm -v | grep port

查看Samba监听的端口号:
[root@CentOS7 ~]# ss -tlunp  | grep mbd       #ss命令是netstat命令的替代

可以直接关闭防火墙:
[root@CentOS7 ~]# systemctl stop firewalld.service

十一、SeLinux设置
SeLinux会影响到Samba的访问,最直接的方法就是关闭他。

1、查看SeLinux状态
[root@CentOS7 ~]# sestatus

2、临时关闭SeLinux
[root@CentOS7 ~]# setenforce 0

3、永久关闭SeLinux,需要重启机器
编辑/etc/selinux/config文件,将SELINUX的值设置为disabled,下次开机SELinux就不会启动了


十二、Linux客户端上访问

Linux客户端上访问Windows系统或Samba服务器上共享资源的方式主要有两种,可以使用smbclient程序访问共享资源,也可以使用mount命令把共享目录挂载到本地目录上使用。

1、smbclient是Samba所提供的一个类似于FTP的客户端程序,使用smbclient链接到共享的资源后,可以使用ls,get,put等类似于FTP的命令对共享资源进行操作,首先要安装smbclient程序:
—————————————
[root@CentOS7 ~]# yum install samba-client
—————————————
smbclient命令的格式如下所示:

smbclient  [选项] //[address]/[共享目录]

该命令常用的选项及说明如下所示
-I=IP: 连接指定的IP地址
-L=Host: 获取指定共享资源列表
-p=Port: 指定要连接的共享资源服务器端口号
-U=Username: 指定连接共享服务器使用的用户帐号
-N: 不要求输入密码
-?:显示命令的帮助信息
-V :显示命令的版本信息

例如要查看共享服务器192.168.1.30上的共享资源列表,命令如下:
———————————————————————-
[root@CentOS7 ~]# smbclient -L=192.168.1.27 -U administrator
Enter SAMBA\administrator’s password:                #要求输入administrator帐号的密码

    Sharename       Type      Comment
    ———       —-      ——-
    ADMIN$          Disk      远程管理
    C$              Disk      默认共享
    IPC$            IPC       远程 IPC
    windd           Disk      
Reconnecting with SMB1 for workgroup listing.
Connection to 192.168.1.27 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Failed to connect with SMB1 — no workgroup available

———————————————————————-
通过上面的查看可以看到共享的资源为windd

通过smbclient命令登录到共享主机资源,命令如下:
———————————————————————-
[root@CentOS7 ~]# smbclient  //192.168.1.27/windd -U administrator
Enter SAMBA\administrator’s password:
Try “help” to get a list of possible commands.
smb: \>
———————————————————————-
在smb: \>下面其实就是在 //192.168.1.30/windd这个目录下,我们可以使用ls,get,put等命令进行数据的传输,常用命令如下:

? :列出所有可以使用的命令
cd :远程共享主机上切换目录
del :删除某个文件
lcd :本机主机上切换目录
ls :查看当前所在目录的文件
get :下载文件
put : 上传文件
rm : 删除文件
exit :退出

2、通过mount命令挂载共享目录到本地。
在使用smbclient命令一点也不方便直观,其实除了smbclient为,Linux客户端也可以像NFS一样使用mount命令把远程的共享文件夹挂载到本地的目录上进行使用。挂载后对共享文件夹的访问就像操作本地目录一样方便。首先需要安装cifs-utils软件包(以及cifs-utils依赖的软件包):
———————————————
[root@CentOS7 ~]# yum install cifs-utils
———————————————

挂载命令如下:

[root@CentOS7 ~]# mount.cifs //[address]/[folder] -o user=[username] [mount point]
 
[root@CentOS7 ~]# mount -t cifs //[address]/[folder] -o user=[username] [mount point]
 
[root@CentOS7 ~]# mount -t cifs //[address]/[folder] -o domain=[domain_name],user=[username] [mount point]

[address]是windows的IP地址,[folder]是windows下的共享目录,[username]是window下的设置folder共享时的用户,如果该用户使用域管理(如企业或组织用户),需要设置domain ;[mount point]是Linux系统上的挂在点,mount.cifs命令可以取代mount -t cifs命令。

挂在举例:将共享文件windd挂载到linux系统的/mnt目录,共享用户为administrator
———————————————————————
[root@CentOS7 ~]# mount.cifs //192.168.1.27/windd -o user=administrator /mnt/
Password for administrator@//192.168.1.27/windd:  ********                   #这里要求输入共享用户administrator的密码
[root@CentOS7 ~]#
———————————————————————

setup命令开机启动服务配置

setup是redhat开发的命令行下命令行模式界面的GUI工具,只适用6.x或5.x版本,其他的版本比如说Suse是没有这个工具的。通过它可配置网络,防火墙,主机名,开机启动服务等,用这个命令比较方便对系统的配置。

setup 命令的基本信息如下。

命令名称:setup。
英文原意:A text mode system configuration tool。
所在路径:/usr/bin/setup。
执行权限:所有用户。
功能描述:系统配置工具。

 
如果没有安装通过下面的命令进行安装:
#安装Setup命令工具
yum -y install setuptool   
#安装Setup工具配套的系统服务组件
yum -y install ntsysv   
#安装Setup工具配套的防火墙配置组件
yum -y install system-config-securitylevel-tui
#安装Setup工具配套的网络配置组件
yum -y install system-config-network-tui
#安装Setup工具配套的验证配置组件
yum -y install authconfig-gtk
#安装Setup工具配套的键盘配置组件
yum -y install system-config-keyboard

1、setup 命令会开启一个图形化的配置工具,

 这是一个综合工具,既可以配置 IP 地址,也可以管理防火墙和系统服务。如果我们需要配置 IP 地址,则只要选择”网络配置”就会开始 IP 地址配置。

可以使用上下键在选项中切换,使用<Tab> 在元素间切换  |    使用 <Enter> 键来编辑选中项目

2、系统服务配置,在这里可以设置开机启动的服务

Huawei配置两台交换机堆叠示例


配置两台交换机堆叠示例(先配置后连线方式,推荐)

一、基本概念

在堆叠中,有以下一些基本概念,如图1所示。
图1 堆叠基本概念示意图

1、 角色
堆叠中的单台交换机称为成员交换机,按照功能不同可以分为以下角色:

主交换机:主交换机(Master)负责管理整个堆叠。堆叠中只有一台主交换机。

备交换机:备交换机(Standby)是主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。堆叠中只有一台备交换机。

从交换机:从交换机(Slave)主要用于业务转发,从交换机数量越多,堆叠系统的转发能力越强。除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。

2、堆叠域

交换机通过堆叠链路连接在一起组成一个堆叠,这些成员交换机的集合就是一个堆叠域。为了适应各种组网应用,同一个网络里可以部署多个堆叠,堆叠之间使用域编号(Domain ID)来进行区别。使其不与网络中其他堆叠系统的域编号冲突。

2、堆叠成员ID

堆叠成员ID,即堆叠成员交换机的编号(Member ID),用来标识和管理成员交换机。堆叠中所有成员交换机的堆叠成员ID都是唯一的。

3、堆叠优先级

堆叠优先级是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,当选为主交换机的可能性越大。

4、堆叠物理成员端口

堆叠物理成员端口,即被配置为堆叠模式的物理端口,用于堆叠成员交换机之间的连接。

5、堆叠端口

堆叠端口是一种专用于堆叠的逻辑端口,需要和堆叠物理成员端口绑定。一个堆叠端口可以与一个或多个堆叠物理成员端口绑定,以提高链路的带宽和可靠性。

每台设备支持两个堆叠端口,为Stack-Portn/1和Stack-Portn/2,其中n为设备的堆叠成员ID。


二、组网图形

图1 配置两台交换机堆叠组网图


三、组网需求
在一个新建的企业网络中,要求接入设备具有充足的端口数目,并且希望网络结构简单,易于配置和管理。
如图1所示,接入交换机SwitchA和SwitchB组成堆叠系统。

四、配置思路
采用如下的思路配置:
1. 提前规划好堆叠方案。
2. 按照前期的规划,完成各台交换机的堆叠配置,包括堆叠成员ID、堆叠优先级、堆叠域编号、堆叠端口等。完成后保存配置并将交换机下电。
3. 连接交换机之间的堆叠线缆,然后将交换机上电。
4. 检查堆叠组建是否成功。

五、操作步骤
1. 提前规划堆叠方案。
• 规划SwitchA的堆叠成员ID为1,SwitchB的成员ID为2。
• 规划SwitchA作为主交换机,其堆叠优先级最高,为150。SwitchB的堆叠优先级为120。
• 规划堆叠域编号(Domain ID)为10,不与网络中其他堆叠系统的域编号冲突。
• 规划SwitchA和SwitchB用于堆叠连接的端口为10GE1/0/1~10GE1/0/4。
2. 配置堆叠属性。
# 配置SwitchA的堆叠优先级为150,Domain ID为10。缺省情况下,设备的堆叠成员ID为1。此处默认SwitchA的堆叠成员ID为1,无需配置。

<HUAWEI> system-view                                  #进入系统视图
[~HUAWEI] sysname SwitchA                             #交换机命名为SwitchA
[*HUAWEI] commit                                      #提交配置
[~SwitchA] stack                                      #进入堆叠管理视图
[~SwitchA-stack] stack member 1 priority 150          #配置堆叠成员设备的堆叠成员ID为1(默认就为1),优先级为150
[*SwitchA-stack] stack member 1 domain 10             #配置堆叠域为10
[*SwitchA-stack] quit                                 #退出堆叠管理视图
[*SwitchA] commit
# 配置SwitchB的堆叠成员ID为2,优先级为120,Domain ID为10。
<HUAWEI> system-view
[~HUAWEI] sysname SwitchB
[*HUAWEI] commit
[~SwitchB] stack
[~SwitchB-stack] stack member 1 priority 120
[*SwitchB-stack] stack member 1 domain 10
[*SwitchB-stack] stack member 1 renumber 2 inherit-config    
Warning: The stack configuration of member ID 1 will be inherited to member ID 2 after the device resets. Continue? [Y/N]: y
[*SwitchB-stack] quit
[*SwitchB] commit
说明:
因SwitchB尚未重启,当前堆叠成员ID还是1,所以此时仍使用member 1来进行堆叠配置。
因为修改堆叠成员ID时指定了inherit-config参数,所以SwitchB重启后会继承member 1的堆叠配置;如果不指定inherit-config参数,那么SwitchB重启后不会继承member 1的堆叠配置,需要使用member 2重新进行堆叠配置。
3. 配置堆叠端口。
# 将SwitchA的业务口10GE1/0/1~10GE1/0/4加入堆叠端口1/1。

[~SwitchA] interface stack-port 1/1                                            #创建堆叠端口
[*SwitchA-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4       #向堆叠端口中添加成员端口。
Warning: The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode and be configured with the port crc-statistics trigger error-down command if the configuration does not exist. After the configuration is complete, these interfaces may go Error-Down (crc-statistics) because there is no shutdown configuration on the interfaces. [Y/N]: y
[*SwitchA-Stack-Port1/1] commit
[~SwitchA-Stack-Port1/1] return
被配置为堆叠物理成员端口后,端口下会自动配置port crc-statistics trigger error-down。
# 将SwitchB的业务口10GE1/0/1~10GE1/0/4加入堆叠端口1/1。
[~SwitchB] interface stack-port 1/1
[*SwitchB-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4
Warning: The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode and be configured with the port crc-statistics trigger error-down command if the configuration does not exist. After the configuration is complete, these interfaces may go Error-Down (crc-statistics) because there is no shutdown configuration on the interfaces. [Y/N]: y
[*SwitchB-Stack-Port1/1] commit
[~SwitchB-Stack-Port1/1] return
4. 检查堆叠配置信息。
# 上述配置完成后,执行命令display stack configuration查看配置是否与规划的一致,如果不一致,需要修改配置。以查看SwitchA为例。
<SwitchA> display stack configuration
Oper : Operation
Conf : Configuration
* : Offline configuration
Isolated Port : The port is in stack mode, but does not belong to any Stack-Port

Attribute Configuration:
—————————————————————————-
MemberID Domain Priority Switch Mode Uplink Port
Oper(Conf) Oper(Conf) Oper(Conf) Oper(Conf) Oper(Conf)
—————————————————————————-
1(1) –(10) 100(150) Auto(Auto) 4*40GE(4*40GE)
—————————————————————————-

Stack-Port Configuration:
——————————————————————————–
Stack-Port Member Ports
——————————————————————————–
Stack-Port1/1 10GE1/0/1 10GE1/0/2 10GE1/0/3
10GE1/0/4
——————————————————————————–
5. 保存配置后将设备下电。
# 保存SwitchA和SwitchB的配置,然后将设备下电。SwitchB的配置与SwitchA相同,略。
<SwitchA> save
Warning: The current configuration will be written to the device. Continue? [Y/N]: y
6. 按照前期规划及配置,连接堆叠线缆,线缆连接建议交叉连接,比如A交换机的1端口2端口分别对应B交换机的2端口1端口。线缆连接完成后将设备上电。
建议先将高优先级设备上电,以使其先完成启动,优先竞争为主交换机。
7. 验证配置结果。
# 通过Console口或管理网口登录堆叠系统,使用命令display stack查看堆叠是否组建成功。当通过管理网口登录时,需要使用主交换机的IP地址。
<SwitchA> display stack
——————————————————————————–
MemberID Role MAC Priority DeviceType Description
——————————————————————————–
+1 Master 0004-9f31-d520 150 CE6850-48T4Q-EI
2 Standby 0004-9f62-1f40 120 CE6850-48T4Q-EI
——————————————————————————–
+ indicates the device where the activated management interface resides.
如上所示,显示两台交换机的信息,表示堆叠建立成功,且主交换机为成员ID为1的设备,即SwitchA。
# 查看堆叠系统拓扑信息。
<SwitchA> display stack topology
Stack Topology:
———————————————-
Stack-Port 1 Stack-Port 2
MemberID Status Neighbor Status Neighbor
———————————————-
1 up 2 — —
2 up 1 — —
———————————————-

Stack Link:
—————————————————————————-
Stack-Port Port Status PeerPort PeerStatus
—————————————————————————-
Stack-Port1/1 10GE1/0/1 up 10GE2/0/1 up
Stack-Port1/1 10GE1/0/2 up 10GE2/0/2 up
Stack-Port1/1 10GE1/0/3 up 10GE2/0/3 up
Stack-Port1/1 10GE1/0/4 up 10GE2/0/4 up
Stack-Port2/1 10GE2/0/1 up 10GE1/0/1 up
Stack-Port2/1 10GE2/0/2 up 10GE1/0/2 up
Stack-Port2/1 10GE2/0/3 up 10GE1/0/3 up
Stack-Port2/1 10GE2/0/4 up 10GE1/0/4 up
—————————————————————————-
8. 保存堆叠系统配置。
说明:
在检查堆叠已成功建立后,建议用户立即使用save命令保存堆叠系统配置。
<SwitchA> save
Warning: The current configuration will be written to the device. Continue? [Y/N]: y

搭建局域网YUM源

1、yum是什么

yum(全称为Yellowdog Updater Modified)是一个在CentOS、RedHat和Fedora操作系统中使用的Shell前端软件包管理器。

yum主要管理基于rpm的软件包,它可以自动升级、安装、删除rpm软件包,同时它还能够自动查找并解决rpm包之间的依赖关系,并且无需管理员逐个、手工的去安装每一个rpm包,使管理员在维护Linux主机时更加轻松自如。

yum可以从一个或多个repo文件中配置的repo仓库,通过http或ftp协议从repo仓库获得必要的信息,然后下载相关的软件包。这样,本地用户通过建立不同的repo仓库,在有Internet连接时就能方便进行系统的升级和维护工作。

repo仓库可以通过createrepo或yum-arch命令进行创建,也能够用别人已经创建好的repo仓库作为yum源,在此我们主要探讨通过createrepo命令创建的repo仓库。

2、repo文件是什么

一个标准的centos的repo文件内容如下:

[base]

name=CentOS-$releasever – Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

各个选项说明如下:

[base]

  该选项是定义软件源的名称,该名称是可以自定义,同时在该服务器上所有repo文件中是唯一的。注意:方括号里面不能有空格。

name=CentOS-$releasever – Base

  该选项是定义软件仓库的名称,$releasever变量定义了发行版本,通常是5,6,7等数字。

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

  这是指定镜像服务器的地址列表,通常是开启的。

  baseurl通常有以下四种格式,如下:

baseurl= http://mirrors.aliyun.com/centos/6.6/os/x86_64/

  使用http协议镜像服务器地址

baseurl= ftp://ftp.sjtu.edu.cn/centos/6.6/os/x86_64/

  使用ftp协议镜像服务器地址

baseurl= rsync://mirror.zol.co.zw/centos/

  使用rsync镜像服务器地址

baseurl= file:///ilanni/yum/

  使用本机的镜像服务器地址

enabled=1

  该选项表示在这个repo文件中启用这个软件源,默认该选项可以不写。但是如果enabled的值为0,则表示禁用这个软件源。

  注意:一个repo文件中可以定义多个软件源。

gpgcheck=1

  该选项表示对通过该软件源下载的rpm包进行gpg校验,如果gpgcheck的值为0表示不进行gpg校验。

gpgkey= file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

  该选项定义用于校验的gpg密钥文件。

通过以上这个repo文件的说明,相信各位会觉得,其实centos的repo文件真是很简单。有了一个初步的认识了之后,我们就可以进行下面的实验了。

我们现在要求在内网搭建一个yum源。该yum源需要配置两个源:一个是centos的光盘镜像源,一个是特殊rpm软件的镜像源,并且该yum源是通过http进行访问。

3、yum服务器端配置

3.1 配置web服务器

在yum服务器上,我们现在直接使用yum安装apache。

把华为交换机设置成时钟源服务器(NTP)

把华为交换机设置成时钟源服务器(NTP),提供给下面客户端Linux服务器使用,

1,先设置交换机的时区,和正确时间

# 假设地理位置在中国北京,设置本地时区名称为BJ。

如果系统默认的UTC是伦敦时间,伦敦当地时间为2012年12月1日0时0分0秒,想要得到对应的北京时间的方法是:北京处于+8时区,时间偏移量增加了8。在配置时,就是在系统默认的UTC时区的基础上,加上偏移量8,才能得到预期的BJ时区。

<HUAWEI> clock timezone BJ add 08:00:00                

设置时区并在现在的UTC基础上偏移8

<HUAWEI> clock datetime 0:0:0 2012-12-01                

这是设置时间的命令,设置成对应的北京时间就行。

2,开启交换机的NTP服务

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable                 开启NTP服务(默认关闭)

[*HUAWEI] commit

# 配置NTP主时钟,层数为2。

 [~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

3,下面的是NTP设置的更多功能,可以不配置

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

  • 广播模式

# 配置NTP主时钟,层数为2。

<HUAWEI> system-view

[~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

# 配置NTP广播服务器,从接口10GE1/0/1发送NTP广播报文,并指定使用密钥ID 42加密。

[~HUAWEI] interface 10ge 1/0/1

[~HUAWEI-10GE1/0/1] undo portswitch

[*HUAWEI-10GE1/0/1] ntp broadcast-server authentication-keyid 42

[*HUAWEI-10GE1/0/1] quit

[*HUAWEI] commit

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable

[*HUAWEI] commit

  • 组播模式

# 配置NTP主时钟,层数为2。

<HUAWEI> system-view

[~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

# 配置NTP组播服务器,从接口10GE1/0/1发送NTP组播报文,并指定使用密钥ID 42加密。

[~HUAWEI] interface 10ge 1/0/1

[~HUAWEI-10GE1/0/1] undo portswitch

[*HUAWEI-10GE1/0/1] ntp multicast-server authentication-keyid 42

[*HUAWEI-10GE1/0/1] quit

[*HUAWEI] commit

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable

[*HUAWEI] commit

  • 多播模式

# 配置NTP主时钟,层数为2。

<HUAWEI> system-view

[~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

# 配置NTP多播服务器,从接口10GE1/0/1发送NTP多播报文。

[~HUAWEI] interface 10ge 1/0/1

[~HUAWEI-10GE1/0/1] undo portswitch

[*HUAWEI-10GE1/0/1] ntp manycast-server

[*HUAWEI-10GE1/0/1] quit

[*HUAWEI] commit

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable

[*HUAWEI] commit

在Windows10下搭建NTP服务

系统版本: Windows10专业工作站版

  1. 修改注册表
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    设置为5
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
    设置为1
  2. 打开命令命令提示符
    net stop w32time
    net start w32time
  3. 防火墙放行NTP所需端口
    123/udp
  4. 如有需要, Windows服务管理里面设置Windows Time为开机启动

另外, 针对步骤1的AnnounceFlags设置为5, 我去查了下相关资料

基本项为0/1/2/4/8

参数含义: a) 0 不作为时间服务器; b) 1 始终为时间服务器; c) 2 自动为时间服务器,意味着由 Windows 时间服务来决定角色; d) 4 始终为可靠时间服务器; e) 8 自动为可靠时间服务器,意味着由 Windows 时间服务来决定角色。

所以5=1+4, 始终为时间服务器且始终为可靠时间服务器.

我拿Windows搭建NTP服务器主要是想测试Linux下NTP服务/客户端的搭建

但是发现搭完后, Linux客户端可以使用Windows的NTP服务更新时间

但是Linux的NTP服务无法与Windows的NTP服务完成时间同步

后感

到今天为止,至少上亿的人,要么开始在家办公,要么带着口罩走进工厂,公司,或者写字楼。

这是一个艰难的抉择,而所有人,只能选择健康和生活的相对平衡。

网络上有个问题是:

疫情中的复工后,你有怎样的感触?

最戳心的一个回答是:

从来没有哪个时刻,像现在一样,让我感觉此前过得太敷衍。
以后我要努力赚钱,认真工作和生活。

是的,世界安静下来,你才能听得到心跳的声音。

经历过生死与突如其来的变故,你才能体会生活的真相。

在家里呆了差不多30天,日子被突然按下暂停键,你明白的只会是更多。

从今天起,至少上亿此前不认真生活的人,注定会「消失」或「失踪」。

而你,最大的感想是什么?

疫情不仅改变了社会,也正在改变你对世界的态度。

如果说,灾难已经无法避免。

那么,刚过去的30多天,就是中国人最深刻的一次集体修行。

健康力
才是一个人最大的能力

一个人到底拥有怎样的能力,才能在这个社会立足?

这个问题,有太多的答案。

但此次疫情给出了,最明显与直白的结果。

健康力,才是一个人最大的能力。

换句话说,健康才是一切平淡,或跌宕生活的起点。

所谓健康,不仅是指你体格足够棒,还指你心理健康,适应力强,道德健康。

身心健康,你才能不轻易被病毒感染。

道德健康,你就会遵守社会的规则与秩序,不在这样一场大灾难里被其他人唾弃。

你不会轻易出逃,不会隐瞒自己的出行与旅游经历。

同时拥有身心健康与道德健康,你才能在所有的风波里安然无恙。

寻常日子里,也许你会有太多通往光鲜,或升级版生活的逻辑。

但渡尽劫波,你就会发现,强大的健康力,才是最颠簸不破的硬实力。

有套房
是一切生活稳定感的前提

此次疫情抗击的一个关键词是:居家隔离。

房子的重要性,在这里展现得淋漓尽致。

如果你没有固定的住处,在过去的20多天里,过得比较狼狈。

但有一套房,也许你在房子里仍然会不安与忐忑,但会好很多。

我不提倡你一定要多买房,毕竟,靠买房致富的年代,已经过去。

但有套房,就算在异乡,你也不会有漂浮在空中的感觉;

有套房,就算去相亲,你也会多一些直言不讳的底气。

而在新冠肺炎这样的疫情里,有一套房,靠近超市和菜市场,不停水和停电。

你就多了一个庇护所,多了许多底气。

海子在诗里说:

从明天起,做一个幸福的人/喂马、劈柴,周游世界/从明天起,关心粮食和蔬菜/我有一所房子,面朝大海,春暖花开。

有套房,可能还是无法喂马、劈柴,但至少,你不会遁无可遁。

有套房,真的是一切生活稳定感的前提。

相信你已经意识到了。

别再欺骗自己了,如果手头有钱,就赶紧去售楼部吧。

你不能穷到没有存款!

这次新冠疫情中,哪一部分人最难受?

除了被感染者,还有没有存款的人。

假期如此漫长,复工遥遥无期,车贷、房贷仍然在那里。

但固定的收入,突然变得不可预期。

没有存款,每天的开支,都是一次对生活余量的透支,让人变得紧张。

你总以为,没有存款也是一种生活选择。

但生活,只会告诉你赤裸裸的事实:

如果你穷到连存款也没有,痛苦就会随之而来。

曾经有则直击人心的广告词是:年纪越大,越没有人会原谅你的穷。

真是这样,年龄越大,你的存款越少,生活对你投的信任票就会越少。

你和这个世界,有时候真的是靠金钱联系着,就这么简单。

那种只存不花的金钱观,当然不足取。

但只花不存,则是成年人最大的不自律。

你一旦不自律,风险的兜底能力就会大大降低。

灾难会让你害怕,也会教给你规避风险的路径。

禁足后才知道
99%的社交是无用的

一些媒体,在形容这次疫情中普通人的居家隔离时,都不约而同用到一个词:

禁足。

疫情大事件,骤然中断了你绝大部分的社会联系,也禁止了你以前不停的社交。

禁足后,会发生什么?

你会发现总想逃离的家,其实也没那么可怕;
你会明白,静下心来看一本书也是可能的;
你还会明白,99%的社交其实是没什么用的。

你呆在家里这么久,没去参加形形色色的聚会、酒局、饭局。

到最后,它们对你的影响依旧微乎其微。

那些只为聚而聚的社交,充其量只是一种弱联系,无法左右你的生活。

你的对手在看书,你的仇人在磨刀,你的闺蜜在减肥,你却把时间浪费在一场又一场的饭局中。

这种生活,不值得过。

你真正需要的,是有价值的遇见。

是你变得优秀,成为所在行业的前15%。

你若强大,人脉自来。

我已经明白了这条道理,你呢?

一辈子太长
要和有趣的人在一起

这是作家王小波的一句话。

但把它用在此次新冠肺炎疫情中,再合适不过。

呆在家中将近30天,出一趟门非常麻烦,重复的空间与生活作息,如何熬过去?

内心呆板的人,会接近崩溃;

过于安静的人,很可能会出现心理问题;

只有那些有趣的人,会活出另一种滋味。

这几天看抖音,我就格外感慨。

抖音中,有太多苦中作乐的人。

有被困在农村老家的人,在磨盘旁扮起了「毛驴」;

有人在给橘子「接生」;

有的一家人,演起了情景小剧。

疫情让他们无法自由出门,但他们在家里找到了另一个小世界。

世界上普通的人很多,但有趣的人很少。

请你做一个普通且有趣的人。

如果你遇到这样的人,请记得珍惜。

不要迷恋深夜的酒
一定要喝清晨的粥

昨晚,和一位刚返城的邻居聊天。

她在老家呆了整整18天。山区,手机都没有信号。

我问她,没有网络的日子可怕吗?

她说:恰恰相反。

从来没有在家里陪父母这么久,第一次感觉安静真好,和家人呆在一起心定。

也从来没有和孩子相处这么长时间,突然发现,除了有时候不写作业,也挺可爱。

新冠肺炎疫情,当然是一次灾难。

但换个角度来看,它何尝又不是,给所有人一个机会,和最亲近的人在一起。

灾难和意外都是不速之客。

不要等它们到来,才去爱值得爱的人。

深夜的酒,喧嚣与热闹,固然让人血脉膨胀,兴奋不已。

但只有和家人在一起的清晨,喝着温暖的粥,才是真正的开始与生活。

你千万不要迷恋深夜的酒,一定要喝清晨的粥。

你千万不要留恋在熙熙攘攘的世界,忘记了家和亲人。

回家,要趁早。

爱父母和亲人,要在当下。

武汉新冠肺炎疫情,将会如何发展?

最好结果,是2到4周内,所有病人治疗结束,2到3个月内全国疫情得到控制;

最差的结果,是控制失败,病毒席卷全球;

还有一种胶着的姿态:

病例数在可控范围内增长,抗疫过程会十分长,可能长达半年至一年之久。

现在看来,一些湖北外省份的疫情「拐点」,可能正在到来,情况在向着乐观的方向走。

这是一个好的消息。

但疫情形势依然严峻,你不能放松。

一定要用此前高度警惕的姿态,去应对。

不少城市,今天已经复工。

被紧急刹车的中国,重新开始走在路上,正常的生活,也渐渐被重启。

但这不是简单的重启。

而是你替那些死去的他们在活;

是你在替被自己荒废的昨天在活。

加缪在《鼠疫》中说:

「对未来的真正慷慨,是把一切献给现在。」

武汉继续加油,谢谢那些一直在武汉坚守的人。

全国内的拐点一定会尽快到来。

这是一场灾难。

也是一场所有中国人的集体修行。

你不要辜负这一场修行。

灾难过后,愿你都能成为一个有好身体、有风险意识,与有趣的人。

愿你有房子,也有积蓄;

愿你既看重身边人,也远离无用的社交与关系。

查看Linux版本系统信息方法汇总

Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。  

 1、# uname -a   (Linux查看版本当前操作系统内核信息)   Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2019 i686 athlon i386 GNU/Linux   

2、# cat /proc/version (Linux查看当前操作系统版本信息)       Linux version 2.4.20-8 (bhcompile@porky.devel.redhat.com)      (gcc version 3.2.2 20190222 (Red Hat Linux 3.2.2-5)) #1 Thu Mar 13 17:54:28 EST 2019  

3、# cat /etc/issue  或cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息)   Red Hat Linux release 9 (Shrike)

  4、# cat /proc/cpuinfo (Linux查看cpu相关信息,包括型号、主频、内核信息等)   processor        : 0
     vendor_id         : AuthenticAMD
  cpu family        : 15
  model             : 1
  model name      : AMD A4-3300M APU with Radeon(tm) HD Graphics
  stepping         : 0
  cpu MHz          : 1896.236
  cache size       : 1024 KB
  fdiv_bug         : no
  hlt_bug          : no
  f00f_bug        : no
  coma_bug      : no
  fpu                : yes
  fpu_exception   : yes
  cpuid level      : 6
  wp                : yes
  flags             : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr                           sse sse2 syscall mmxext lm 3dnowext 3dnow
  bogomips      : 3774.87   

5、# getconf LONG_BIT  (Linux查看版本说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)   32  

 6、# lsb_release -a

linux中curl安装和使用

安装curl

  1. 下载curl包,地址https://curl.haxx.se/download/

wget https://curl.haxx.se/download/curl-7.59.0.tar.gz

2.解压缩

tar -xzvf curl-7.59.0.tar.gz

3.进入安装目录

cd curl-7.59.0

4.编译

./configure

make

make install

5.验证安装是否成功

curl –version

可以查看到版本,则curl安装成功。

可能碰到的问题
报错:error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

解决方法:

1.查找文件地址:find -name libcurl.so

2.将文件路径添加到日志中:/etc/ld.so.conf

3.执行生效:/sbin/ldconfig -v

4.重新验证curl安装

curl基本使用
curl保存网页-o
curl -o page.html www.sina.com

指定http访问所使用的proxy服务器及端口-x
curl -x www.sina.com

保存cookie信息:-D
curl -x ip:n -o page.html -D cookie001.txt www.sina.com

访问时添加cookie信息:-b
curl -x ip:n -o page.html -D cookie001.txt -b cookie001.txt www.sina.com

CentOS7 一键安装KMS服务

KMS,是 Key Management System 的缩写,也就是密钥管理系统。这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Windows 和 Office 的 KMS 啦。经常能在网上看到有人提供的 KMS 服务器地址,那么你有没有想过自己也来搞一个这样的服务呢?而这样的服务在 Github 上已经有开源代码实现了。

有作者在这个开源代码的基础上,开发了适用于三大 Linux 发行版的一键安装 KMS 服务的脚本。

实际上,Github上的开源代码也支持Windows系统下的编译和部署。只是相对来说,这个一键部署脚本比较方便,且如果有服务器资源的话,可以长期运行,比较稳定。

当然还有一些部署好的在线KMS服务免费提供给大家使用,不过可能就是稳定性有限。

另外,也有KMS服务器的docker镜像,下载地址:luodaoyi/kms-server

感兴趣的也可以直接在Linux服务器(或者windows,不推荐)上通过docker 部署。

docker run -d docker.io/luodaoyi/kms-server
有关docker部署的资料可通过搜索查询到,不再赘述。通过docker部署KMS服务器更多细节可参考以下链接:

搭建私有KMS服务以激活用于实验的windows系统

后文主要介绍通过脚本直接部署和激活具体步骤。

脚本适用环境
系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:任意
内存要求:≥128M
日期 :2019 年 04 月 15 日

服务作用:在线激活windows和office

适用对象:VOL版本的windows和office

适用版本:截止到win10和office2016的所有版本

服务时间:服务器在线即提供服务

优点:在线激活 省时省力 无需安装软件 干净环保 命令简单

缺点:服务器不挂的话自动重新授权到服务器挂(服务器挂了还能继续180天)

关于本脚本
1、本脚本适用于三大 Linux 发行版,其他版本则不支持。
2、KMS 服务安装完成后会加入开机自启动。
3、默认记录日志,其日志位于 /var/log/vlmcsd.log。

使用方法
使用root用户登录,运行以下命令:

wget –no-check-certificate https://github.com/teddysun/across/raw/master/kms.sh && chmod +x kms.sh && ./kms.sh
安装完成后,输入以下命令查看端口号 1688 的监听情况:

netstat -nxtlp | grep 1688
返回值类似于如下这样就表示 OK 了:

tcp 0 0 0.0.0.0:1688 0.0.0.0:* LISTEN 3200/vlmcsd
tcp 0 0 :::1688 :::* LISTEN 3200/vlmcsd
本脚本安装完成后,会将 KMS 服务加入开机自启动。

使用命令:
启动:/etc/init.d/kms start
停止:/etc/init.d/kms stop
重启:/etc/init.d/kms restart
状态:/etc/init.d/kms status

卸载方法:
使用 root 用户登录,运行以下命令: ./kms.sh uninstall

如何使用 KMS 服务
KMS 服务,用于在线激活 VL 版本的 Windows 和 Office。

激活的前提是你的系统是批量授权版本,即 VL 版,一般企业版都是 VL 版。而 VL 版本的镜像一般内置 GVLK key,用于 KMS 激活。

可以到MSDN i tell you这个站点中下载相应镜像。建议下载时选择VL版(文件名中带有VL字符的版本)。

如果下载了非批量授权版本也没关系,只需要手动导入KMS Client Setup Key也可以使用KMS进行批量激活。不同版本的系统有不同的GVLK key,可以从微软官网找到:

Appendix A: KMS Client Setup Keys
另外,下面列表里面含有的产品的 VL 版本或者能使用 key 进入 KMS 通道的产品,都支持使用 KMS 激活。

Office 2016:https://technet.microsoft.com/zh-cn/library/dn385360(v=office.16).aspx
Office 2013:https://technet.microsoft.com/ZH-CN/library/dn385360.aspx
Office 2010:https://technet.microsoft.com/ZH-CN/library/ee624355(v=office.14).aspx
Windows:https://docs.microsoft.com/zh-cn/windows-server/get-started/kmsclientkeys

使用管理员权限运行 cmd 查看系统版本,命令如下: wmic os get caption

使用管理员权限运行 cmd 安装从上面列表得到的 key,命令如下:

slmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
使用管理员权限运行 cmd 将 KMS 服务器地址设置为你自己的 IP 或 域名,命令如下:

slmgr /skms Your IP or Domain
注意:本脚本所做的工作就是此步骤。当你的 KMS 服务出于启动状态,那么此处就可以设置为你自己的 KMS 服务器地址。

使用管理员权限运行 cmd 手动激活系统,命令如下:

slmgr /ato

单独激活office说明

关于 Office 的激活,要求必须是 VOL 版本,否则无法激活。

找到你的 Office 安装目录,32 位默认一般为 C:\Program Files (x86)\Microsoft Office\Office16
64 位默认一般为 C:\Program Files\Microsoft Office\Office16
Office16 是 Office 2016,Office15 就是 Office 2013,Office14 就是 Office 2010。
打开以上所说的目录,应该有个 OSPP.VBS 文件。
使用管理员权限运行 cmd 进入 Office 目录,命令如下:

cd “C:\Program Files (x86)\Microsoft Office\Office16”
使用管理员权限运行 cmd 注册 KMS 服务器地址:

cscript ospp.vbs /sethst:Your IP or Domain
使用管理员权限运行 cmd 手动激活 Office,命令如下:

cscript ospp.vbs /act
注意: KMS 方式激活,其有效期只有 180 天。

每隔一段时间系统会自动向 KMS 服务器请求续期,请确保你自己的 KMS 服务正常运行。

常见错误的对策
如果遇到在执行过程报错,请按以下步骤检查:
1,你的 KMS 服务器是否挂了?
2,你的 KMS 服务是否正常开启?
3,你的系统或 Office 是否为批量 VL 版本?
4,你的系统或 Office 是否修改过 Key 或未安装 GVLK Key?
5,你是否以管理员权限运行 cmd?
6,你的网络连接是否正常?
7,你的本地 DNS 解析是否正常?
8,如果你排除了以上的对策,那请根据错误提示代码自行搜索原因。

0x80070005错误一般是你没用管理员权限运行CMD