记录一下
  仅此而已

Let’s Encrypt免费泛域名证书申请教程步骤

小6阅读(42)

Let’s Encrypt支持泛域名证书申请后,很多小伙伴都有了自己的泛域名证书,省去了很多麻烦。今天有所需,在网路上找了一篇文章作为教程,特转发在本站,以作记录。感谢作者。

Let’s Encrypt免费泛域名证书安装步骤如下:

一、首先下载ACME.SH,以下四条命令任选一条即可,醒醒用的是第四条。

curl https://get.acme.sh | sh
wget -O -  https://get.acme.sh | sh
curl https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1  sh
wget -O -  https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1  sh

Let’s Encrypt免费泛域名证书申请教程步骤

二、申请Let’s Encrypt免费泛域名证书的第一步获取验证DNS所需要的TXT记录,下面命令中两个“-d”建议先输入泛域名,这样在证书里可以显示*.xxorg.com这样的泛域名,显得比较吊一些。

cd /.acme.sh
./acme.sh  --issue -d  *.xxorg.com  -d xxorg.com --dns

运行后结果如下:

[root@ser-wh2 .acme.sh]# ./acme.sh --issue --dns -d *.xxorg.com -d xxorg.com
[Wed Mar 14 19:52:04 CST 2018] Registering account
[Wed Mar 14 19:56:17 CST 2018] Registered
[Wed Mar 14 19:56:17 CST 2018] ACCOUNT_THUMBPRINT=\'oK***Eo******************\'
[Wed Mar 14 19:56:17 CST 2018] Creating domain key
[Wed Mar 14 19:56:17 CST 2018] The domain key is here: /root/.acme.sh/*.xxorg.com/*.xxorg.com.key
[Wed Mar 14 19:56:17 CST 2018] Multi domain=\'DNS:*.xxorg.com,DNS:xxorg.com\'
[Wed Mar 14 19:56:17 CST 2018] Getting domain auth token for each domain
[Wed Mar 14 19:56:26 CST 2018] Getting webroot for domain=\'*.xxorg.com\'
[Wed Mar 14 19:56:26 CST 2018] Getting webroot for domain=\'xxorg.com\'
[Wed Mar 14 19:56:26 CST 2018] Add the following TXT record:
[Wed Mar 14 19:56:26 CST 2018] Domain: \'_acme-challenge.xxorg.com\'
[Wed Mar 14 19:56:26 CST 2018] TXT value: \'9abm****-oUf8l****Kc****-hHw*******r8\'
[Wed Mar 14 19:56:26 CST 2018] Please be aware that you prepend _acme-challenge. before your domain
[Wed Mar 14 19:56:26 CST 2018] so the resulting subdomain will be: _acme-challenge.xxorg.com
[Wed Mar 14 19:56:26 CST 2018] Add the following TXT record:
[Wed Mar 14 19:56:26 CST 2018] Domain: \'_acme-challenge.xxorg.com\'
[Wed Mar 14 19:56:26 CST 2018] TXT value: \'3C*******2**************Dj8\'
[Wed Mar 14 19:56:26 CST 2018] Please be aware that you prepend _acme-challenge. before your domain
[Wed Mar 14 19:56:26 CST 2018] so the resulting subdomain will be: _acme-challenge.xxorg.com
[Wed Mar 14 19:56:26 CST 2018] Please add the TXT records to the domains, and retry again.
[Wed Mar 14 19:56:26 CST 2018] Please add \'--debug\' or \'--log\' to check more details.
[Wed Mar 14 19:56:26 CST 2018] See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh
[root@ser-wh2 .acme.sh]#

Let’s Encrypt免费泛域名证书申请教程步骤

三、到域名DNS解析服务商处添加域名的TXT解析。
上面的命令运行后可能要等上一会,然后会出现下图的结果,其中绿色部分就是需要做TXT记录的主机头和TXT的解析值,因为上面第二里面两个“-d”,所以这里有两个解析值,把两个TXT都做了解析。

四、获取Let’s Encrypt免费泛域名证书。等DSN解析生效后,运行以下命令:

./acme.sh  --renew -d  *.xxorg.com  -d xxorg.com

五、Let’s Encrypt免费泛域名证书的申请已经结束了。

在/.acme.sh目录下会产生“*.xxorg.com”的文件夹,里面就是Let’s Encrypt的免费泛域名证书,我们只需要两个文件就可以了:fullchain.cer是完整的证书,包括了CA根证书,key是密钥,安装证书时需要用到。把证书添加到HTTP里面的方法这里就不啰嗦了。

六、关于Let’s Encrypt免费泛域名证书续签

安装了ACME后,它会添加一个自动任务到你服务器的Cron里,每天都会检查你的Let’s Encrypt免费泛域名证书是否快要过期,ACME会自动帮你续签。

Let’s Encrypt开放申请免费通配符 SSL 证书/野卡

小6阅读(42)

由于野卡验证只支持 dns 验证, 不支持 http 验证. 所以请使用 dns api 模式.

acme.sh --issue -d exmaple.com -d *.example.com --dns dns_cf 

acme.sh 支持了 40 多种 dns api 的原生集成, 满足大部分需求:

https://github.com/Neilpang/acme.sh/tree/master/dnsapi

如果以上没有你要的, 可以尝试 dns alias 模式:

https://github.com/Neilpang/acme.sh/wiki/DNS-alias-mode

Let’s Encrypt官方详情:https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579

Let’s Encrypt开放申请免费通配符 SSL 证书/野卡

Let’s Encrypt免费通配符SSL证书官方原文:

Were pleased to announce that ACMEv2 and wildcard certificate support is live! With todays new features were continuing to break down barriers for HTTPS adoption across the Web by making it even easier for every website to get and manage certificates.

ACMEv21.8k is an updated version of our ACME protocol which has gone through the IETF standards process, taking into account feedback from industry experts and other organizations that might want to use the ACME protocol for certificate issuance and management some day.

Wildcard certificates2.1k allow you to secure all subdomains of a domain with a single certificate. Wildcard certificates can make certificate management easier in some cases, and we want to address those cases in order to help get the Web to 100% HTTPS. We still recommend non-wildcard certificates for most use cases.

Wildcard certificates are only available via ACMEv2. In order to use ACMEv2 for wildcard or non-wildcard certificates youll need a client that has been updated to support ACMEv23.9k. It is our intent to transition all clients and subscribers to ACMEv2, though we have not set an end-of-life date for our ACMEv1 API yet.

Additionally, wildcard domains must be validated using the DNS-01 challenge type. This means that youll need to modify DNS TXT records in order to demonstrate control over a domain for the purpose of obtaining a wildcard certificate.

For more technical information about ACMEv2 and wildcard certificates, see this post4.1k.

Were excited about the prospect of a 100% HTTPS Web and were working hard to get there. As a non-profit organization, we need strong support from our community so please consider getting involved167, making a donation183, or sponsoring115 Lets Encrypt.

Let’s Encrypt免费通配符SSL证书译文:

我们很高兴地宣布ACMEv2和通配符证书支持是实时的!随着今天的新功能,我们将继续打破跨网络HTTPS的障碍,让每个网站都更容易获得和管理证书。


ACMEv21.8k是我们的ACME协议的更新版本,它已经通过了IETF标准流程,并考虑到了来自行业专家和其他组织的反馈,他们可能希望在某一天使用ACME协议进行证书发布和管理。


通配符证书2.1k允许您使用单个证书保护域的所有子域。通配符证书在某些情况下可以使证书管理变得更容易,我们希望处理这些情况,以帮助将Web应用到100% HTTPS。我们仍然推荐大多数用例的非通配符证书。


通配符证书只能通过ACMEv2获得。为了使用ACMEv2作为通配符或非通配符证书,您需要一个已更新的客户端来支持ACMEv23.9k。虽然我们还没有为ACMEv1 API设置一个生命结束日期,但我们的意图是将所有客户端和订阅者转换到ACMEv2


此外,必须使用DNS-01挑战类型验证通配符域。这意味着您需要修改DNS TXT记录,以显示对域的控制,以便获得通配符证书。


有关ACMEv2和通配符证书的更多技术信息,请参见这个post4.1k


我们对100% HTTPS网络的前景感到兴奋,我们正在努力实现这一目标。作为一个非盈利性组织,我们需要来自我们社区的大力支持,所以请考虑加入到167,做一个donation183,或赞助115让我们加密。

 

虚拟机复制后无法上网

小6阅读(50)

克隆虚拟机后发现原来设置的IP无法上网,输入命令

#ip add

返回的信息中没有eth0网卡信息,好像丢失了原来的网卡一样。

看一下网卡配置文件

#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0

原来的配置文件还在。

其实网卡并没有丢失,这是因为克隆的机器没有正确的MAC,UUID信息冲突导致的。

以下是处理方法:

1、先清空一个文件内容:

#echo "">/etc/udev/rules.d/70-persistent-net.rules

2、再删除这个文件:

rm -f /etc/udev/rules.d/70-persistent-net.rules

3、打开网卡配置文件,删除里面的UUID行和HWADDR行

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

4、重启系统

#reboot

5、重启网卡

#/etc/init.d/network restart

现在已经可以正常获取IP了。

Linux多窗口:Screen命令用法

小6阅读(109)

Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

会话恢复

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。

多窗口

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 会话共享 Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

GNU\’s Screen 官方站点:http://www.gnu.org/software/screen/

语法

# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

选项

-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

常用screen参数

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

在每个screen session 下,所有命令都以 ctrl a(C-a) 开始。

C-a ? -> 显示所有键绑定信息
C-a c -> 创建一个新的运行shell的窗口并切换到该窗口
C-a n -> Next,切换到下一个 window 
C-a p -> Previous,切换到前一个 window 
C-a 0..9 -> 切换到第 0..9 个 window
Ctrl a [Space] -> 由视窗0循序切换到视窗9
C-a C-a -> 在两个最近使用的 window 间切换 
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。
C-a w -> 显示所有窗口列表
C-a t -> time,显示当前时间,和系统的 load 
C-a k -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
    C-b Backward,PageUp 
    C-f Forward,PageDown 
    H(大写) High,将光标移至左上角 
    L Low,将光标移至左下角 
    0 移到行首 
    $ 行末 
    w forward one word,以字为单位往前移 
    b backward one word,以字为单位往后移 
    Space 第一次按为标记区起点,第二次按为终点 
    Esc 结束 copy mode 
C-a ] -> paste,把刚刚在 copy mode 选定的内容贴上

使用 screen

安装screen

流行的Linux发行版(例如Red Hat Enterprise Linux)通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载。

[root@TS-DEV ~]# yum install screen
[root@TS-DEV ~]# rpm -qa|grep screen
screen-4.0.3-4.el5
[root@TS-DEV ~]#

创建一个新的窗口

安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨:

[root@TS-DEV ~]# screen -S david

screen启动后,会创建第一个窗口,也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。所以你敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。当然,也可以在screen命令之后加入你喜欢的参数,使之直接打开你指定的程序,例如:

[root@TS-DEV ~]# screen vi david.txt

screen创建一个执行vi david.txt的单窗口会话,退出vi 将退出该窗口/会话。

查看窗口和窗口名称

打开多个窗口后,可以使用快捷键C-a w列出当前所有窗口。如果使用文本终端,这个列表会列在屏幕左下角,如果使用X环境下的终端模拟器,这个列表会列在标题栏里。窗口列表的样子一般是这样:

0$ bash  1-$ bash  2*$ bash

这个例子中我开启了三个窗口,其中*号表示当前位于窗口2,-号表示上一次切换窗口时位于窗口1。

Screen默认会为窗口命名为编号和窗口中运行程序名的组合,上面的例子中窗口都是默认名字。练习了上面查看窗口的方法,你可能就希望各个窗口可以有不同的名字以方便区分了。可以使用快捷键C-a A来为当前窗口重命名,按下快捷键后,Screen会允许你为当前窗口输入新的名字,回车确认。

会话分离与恢复

你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。例如,我们打开一个screen窗口编辑/tmp/david.txt文件:

[root@TS-DEV ~]# screen vi /tmp/david.txt

之后我们想暂时退出做点别的事情,比如出去散散步,那么在screen窗口键入C-a d,Screen会给出detached提示:

暂时中断会话

半个小时之后回来了,找到该screen会话:

[root@TS-DEV ~]# screen -ls

重新连接会话:

[root@TS-DEV ~]# screen -r 12865

一切都在。

当然,如果你在另一台机器上没有分离一个Screen会话,就无从恢复会话了。这时可以使用下面命令强制将这个会话从它所在的终端分离,转移到新的终端上来:

清除dead 会话

如果由于某种原因其中一个会话死掉了(例如人为杀掉该会话),这时screen -list会显示该会话为dead状态。使用screen -wipe命令清除该会话:

关闭或杀死窗口

正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。另一个关闭窗口的方法是使用C-a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。

如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。

除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。其实C-a :这个快捷键允许用户直接输入的命令有很多,包括分屏可以输入split等,这也是实现Screen功能的一个途径,不过个人认为还是快捷键比较方便些。

screen 高级应用 

会话共享

还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:

[root@TS-DEV ~]# screen -x

这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。当然,如果你们切换到这个会话的不同窗口中去,那还是可以分别进行不同的操作的。

会话锁定与解锁

Screen允许使用快捷键C-a s锁定会话。锁定以后,再进行任何输入屏幕都不会再有反应了。但是要注意虽然屏幕上看不到反应,但你的输入都会被Screen中的进程接收到。快捷键C-a q可以解锁一个会话。

也可以使用C-a x锁定会话,不同的是这样锁定之后,会话会被Screen所属用户的密码保护,需要输入密码才能继续访问这个会话。

发送命令到screen会话

在Screen会话之外,可以通过screen命令操作一个Screen会话,这也为使用Screen作为脚本程序增加了便利。关于Screen在脚本中的应用超出了入门的范围,这里只看一个例子,体会一下在会话之外对Screen的操作:

[root@TS-DEV ~]# screen -S sandy -X screen ping www.baidu.com

这个命令在一个叫做sandy的screen会话中创建一个新窗口,并在其中运行ping命令。

屏幕分割

现在显示器那么大,将一个屏幕分割成不同区域显示不同的Screen窗口显然是个很酷的事情。可以使用快捷键C-a S将显示器水平分割,Screen 4.00.03版本以后,也支持垂直分屏,快捷键是C-a |。分屏以后,可以使用C-a 在各个区块间切换,每一区块上都可以创建窗口并在其中运行进程。

可以用C-a X快捷键关闭当前焦点所在的屏幕区块,也可以用C-a Q关闭除当前区块之外其他的所有区块。关闭的区块中的窗口并不会关闭,还可以通过窗口切换找到它。

C/P模式和操作

screen的另一个很强大的功能就是可以在不同窗口之间进行复制粘贴了。使用快捷键C-a 或者C-a [可以进入copy/paste模式,这个模式下可以像在vi中一样移动光标,并可以使用空格键设置标记。其实在这个模式下有很多类似vi的操作,譬如使用/进行搜索,使用y快速标记一行,使用w快速标记一个单词等。关于C/P模式下的高级操作,其文档的这一部分有比较详细的说明。

一般情况下,可以移动光标到指定位置,按下空格设置一个开头标记,然后移动光标到结尾位置,按下空格设置第二个标记,同时会将两个标记之间的部分储存在copy/paste buffer中,并退出copy/paste模式。在正常模式下,可以使用快捷键C-a ]将储存在buffer中的内容粘贴到当前窗口。

更多screen功能

同大多数UNIX程序一样,GNU Screen提供了丰富强大的定制功能。你可以在Screen的默认两级配置文件/etc/screenrc和$HOME/.screenrc中指定更多,例如设定screen选项,定制绑定键,设定screen会话自启动窗口,启用多用户模式,定制用户访问权限控制等等。如果你愿意的话,也可以自己指定screen配置文件。

以多用户功能为例,screen默认是以单用户模式运行的,你需要在配置文件中指定multiuser on 来打开多用户模式,通过acl*(acladd,acldel,aclchg…)命令,你可以灵活配置其他用户访问你的screen会话。更多配置文件内容请参考screen的man页。

WinSCP 通过普通用户 su 切换到 root

小6阅读(141)

  1. 普通用户 ssh 到服务器,切换到 root 权限
  2. 执行 visudo,然后添加 yourusername ALL=NOPASSWD: ALL 这一行,注释掉 Defaults requiretty
  3. 修改 WinSCP 的文件协议为 SCP,如下左图
  4. 修改高级站点设置中的 Shell 为 sudo su – ,如下右图
  5. 登录 WinSCP 即可

Vlan中 Tagged 和 Untagged 的区别

小6阅读(175)

其实就是cisco中的trunk和access的区别

端口接收数据时:
如果端口是tagged方式,当数据包本身不包含VLAN的话,输入的数据包就加上该缺省vlan;如果数据包本身已经包含了VLAN,那么就不再添加。
如果是untagged方式,输入的数据包全部都要加上该缺省vlan。不管输入的数据包是否已经有VLAN标记。

端口发送数据时:
如果端口是tagged方式,如果端口缺省VLAN等于发送的数据包所含的VLAN,那么就会将VLAN标记从发送的数据包中去掉;如果不相等,则数据包将带着VLAN发送出去,实现VLAN的透传。
如果是untagged方式,则不管端口缺省VLAN为多少,是否等于要输出的数据包的VLAN,都会将VLAN ID从数据包中去掉。

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

在接触其他厂商设备的时候无疑都使用cisco的头脑来思考,当然以前刚入行的时候我也是如此,不能排除这个方式有助于思考,可是有些地方会让你误入歧途。写出这些东西,希望能对这些朋友有所帮助。
例如,cisco的干道端口叫做trunk,而其他的厂商并不是如此,他们叫tagged port,而cisco的访问端口叫做access port,而其他厂家叫做untagged port。所以当您遇到命令行或者菜单里面出现tagged/untagged port时别在郁闷了。另外,cisco的trunk自动将vlan1-1005加进去,但这并不是trunk的国际标准,只是cisco的标准阿!!!!不要认为你把一个端口设置为tagged port以后就ok拉,不行的,有些厂家,比如inter,他们需要将端口一个一个的制定到某个vlan。Cisco可以用一个命令:set vlan 3 1/1-2 使1/1-2端口从Vlan1转为Vlan 3.在Intel设备上,不但要将端口从Vlan1删掉后加入Vlan 3,还要设置Port VID(即端口所属的VLAN 的ID)。
以太网端口有三种链路类型:Access、Hybrid和Trunk。Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

端口接收数据时:
如果端口是tagged方式,当数据包本身不包含VLAN的话,输入的数据包就加上该缺省vlan;如果数据包本身已经包含了VLAN,那么就不再添加。
如果是untagged方式,输入的数据包全部都要加上该缺省vlan。不管输入的数据包是否已经有VLAN标记。

端口发送数据时:
如果端口是tagged方式,如果端口缺省VLAN等于发送的数据包所含的VLAN,那么就会将VLAN标记从发送的数据包中去掉;如果不相等,则数据包将带着VLAN发送出去,实现VLAN的透传。
如果是untagged方式,则不管端口缺省VLAN为多少,是否等于要输出的数据包的VLAN,都会将VLAN ID从数据包中去掉。

以太网端口有三种链路类型:Access、Hybrid和Trunk。Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

这里的trunk并不是端口干路的概念,即端口汇聚或者链路聚合,而是允许vlan透传的一个概念。如果想使用端口汇聚请参见相关《端口汇聚》章节。

需要注意的是:

l 在一台以太网交换机上,Trunk端口和Hybrid端口不能同时被设置。

l 如果某端口被指定为镜像端口,则不能再被设置为Trunk端口,反之亦然。

缺省情况下,端口为Access端口。

Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。

需要注意的是:

l Trunk端口不能和isolate-user-vlan同时配置;Hybrid端口可以和isolate-user-vlan同时配置。但如果缺省VLAN是在isolate-user-vlan中建立了映射的VLAN,则不允许修改缺省VLAN ID,只有在解除映射后才能进行修改。

l 本Hybrid端口或Trunk端口的缺省VLAN ID和相连的对端交换机的Hybrid端口或Trunk端口的缺省VLAN ID必须一致,否则报文将不能正确传输。

缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1,Access端口的缺省VLAN是本身所属于的VLAN。 由于每一台桌面交换机上连接有分别属于VLAN1和VLAN2的工作站,而上连端口只有一个,因此,我们需要在交换机和交换机的连接端口上设置为”加标签”(Tagged)。而服务器和工作站的连接端口是不识别标签的,因此连接端口应该设置为”取消标签”(Untagged)。

 

======================================================================

一句话叫你搞清楚tagged VLAN 和 untagged VLAN !
2008年04月02日 星期三 下午 7:39
迷惑了我2天的问题,现在终于解决了,答案是网上找到的:

What is a tagged VLAN [Virtual Local Area Network]?
The IEEE 802.1Q standard allows defining an ethernet interface for multiple logical locations (as opposed to specific physical locations). One port can belong to several 802.1Q tagged VLANs. Thus, many host servers may be connected to the same ethernet LAN switch without being in the same collision or broadcast domain inherent in ethernet technology.

What is an untagged VLAN?
Untagged VLANs are the way we physically separate host servers into different broadcast and collision domains. A port (assigned to each PC connected to the LAN) can only belong to one untagged VLAN. Think of these LANs as the physical LAN connections within the logical or virtual LAN.

url是:http://www.lockergnome.com/it/2006/11/08/vlan-tagging/

Linux查看系统配置常用命令

小6阅读(104)

系统

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量 资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载 磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况 网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息 进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态 用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户

# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务 服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务 程序
# rpm -qa # 查看所有安装的软件包

VPS测试脚本

小6阅读(267)

随着云主机的普及,站长搭建网站的工具,也从虚拟主机时代到vps再升级到了云主机,技术的升级给广大站长站点的稳定带来了保障,那么怎么来测试买到的vps或者云主机好不好呢?以下几种工具可能会帮到你。

一、测速工具

①首推秋水逸冰大佬的bench.sh。

该脚本支持ipv6测速,且运行速度较快,是使用最为广泛的。

脚本出处:https://teddysun.com/444.html

使用方法:

wget -qO- bench.sh | bash

curl -Lso- bench.sh | bash

wget -qO- 86.re/bench.sh | bash

curl -so- 86.re/bench.sh | bash

以上任选一行运行即可。

以下是Alpharacks春节期间768M特价云主机的测试图:

②老鬼的博客 superBench.sh。  在功能和使用上更加全面,主要是测试你的国外主机到国内不同省市的速度。集成了 Speedtest 提供的电信,联通,移动线路。一键选择,一键测试。

 

脚本出处:https://www.oldking.net/305.html

使用方法:依次运行以下代码

wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh

chmod +x superspeed.sh

./superspeed.sh

依然用得Alpharacks 768M特价云主机测试,选择5.全面测试,脚本运行时间约为4分17秒。

也可以选择某线路单独测试,如图:

完成后会单独给出结果:

Linux 常用命令

小6阅读(317)

接触了好几年的Linux了,但很多命令还是记不清楚,可能因为年纪大了吧~~

借此机会慢慢总结一下常用的Linux命令,以便查询。


1、查找命令:find

完整文件名查找法:

适用于知道某个文件的文件名,而不知道这个文件放到哪个文件夹,因为在Linux的黑窗口来回找文件实在是让人崩溃的一件事。。。

格式:find [路径] -name [文件名]

举例:从磁盘根目录查找index.html

find / -name index.html

部分文件名查找法:

适用于仅知道某个文件的部分文件名。

格式:find [路径] -name ‘*[部分文件名]*’

举例:从/etc目录中查找包含pag三个字母的文件

find /etc -name '*pag*'

如果是pag开头的文件,还可以省略最前面的*号,结尾同理。

文件的特征查询法:

适用于知道文件大小、什么时候修改过

格式:find [路径] -size [文件大小]

举例:从/home目录查找大小为500bytes的文件

find /home -size 500c

文件大小后面的c就是表示单位是bytes


2、打包(压缩)命令:tar

打包某个文件(夹)

格式:tar -zcvf [保存路径+文件名] [需要打包的文件(夹)路径]

举例:打包/www/abc文件夹到/home文件夹并命名为xxx.tar.gz

tar -zcvf /home/xxx.tar.gz /www/abc

打包某文件(夹)以外的文件

格式:tar -zcvf [保存路径+文件名] –exclude=[排除的文件(夹)] [需要打包的文件(夹)路径]

举例:打包/www/web文件夹中除.zip文件和bak文件夹到/home目录并命名为yyy.tar.gz

tar -zcvf /home/yyy.tar.gz --exclude=bak --exclude=*.zip /www/web

3、防火墙配置相关

Centos6 编辑防火墙配置文件命令:
vi /etc/sysconfig/iptables
添加允许通过防火墙的端口:

注意:不要添加在最后一行,否则防火墙会启动失败。

-A INPUT -m state –state NEW -m tcp -p tcp –dport 端口号 -j ACCEPT
重启防火墙使配置生效:
/etc/init.d/iptables restart

4、Apache控制命令

启动

service httpd start

重新启动

service httpd restart

停止服务

service httpd stop

5、编辑中。。。

Github 简明教程

小6阅读(1478)

如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。

但是你如果已经在读这篇文章了,我觉的你已经知道Github了。

正是Github,让社会化编程成为现实。

什么是 Github?

github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。

Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。

目前看来,GitHub这场冒险已经胜出。根据来自维基百科关于GitHub的描述,我们可以形象地看出GitHub的增长速度:

github-repos

今天,GitHub已是:

  • 一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。
  • 这个星球上最流行的开源托管服务。目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrapNode.jsCoffeScript等。
  • alexa全球排名414的网站。

注册账户以及创建仓库

要想使用github第一步当然是注册github账号了, github官网地址:https://github.com/。 之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。

Github 安装

配置Git

首先在本地创建ssh key;

$ ssh-keygen -t rsa -C "your_email@youremail.com"

后面的your_email@youremail.com改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key

回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。

github-account

为了验证是否成功,在git bash下输入:

$ ssh -T git@github.com

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"

进入要上传的仓库,右键git bash,添加远程地址:

$ git remote add origin git@github.com:yourName/yourRepo.git

后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。

<h3创建新仓库< h3=””>

创建新文件夹,打开,然后执行 git init 以创建新的 git 仓库。

检出仓库

执行如下命令以创建一个本地仓库的克隆版本:

git clone /path/to/repository 

如果是远端服务器上的仓库,你的命令会是这个样子:

git clone username@host:/path/to/repository

工作流

你的本地仓库由 git 维护的三棵”树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。

你可以提出更改(把它们添加到暂存区),使用如下命令:
git add <filename>
git add *
这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:
git commit -m "代码提交信息"
现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库。

trees

推送改动

你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:
git push origin master
可以把 master 换成你想要推送的任何分支。

如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:
git remote add origin <server>
如此你就能够将你的改动推送到所添加的服务器上去了。

分支

分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是”默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

branches

创建一个叫做”feature_x”的分支,并切换过去:
git checkout -b feature_x
切换回主分支:
git checkout master
再把新建的分支删掉:
git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的
git push origin <branch>

更新与合并

要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch)合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>

标签

为软件发布创建标签是推荐的。这个概念早已存在,在 SVN 中也有。你可以执行如下命令创建一个叫做 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:
git log
你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。

替换本地改动

假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动:
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master

实用小贴士

内建的图形化 git:
gitk
彩色的 git 输出:
git config color.ui true
显示历史记录时,每个提交的信息只显示一行:
git config format.pretty oneline
交互式添加文件到暂存区:
git add -i

链接与资源

图形化客户端

指南和手册

相关文章