0%

说明:Plik是一个基于golang的可扩展且友好的临时文件上传系统。上传者可自定义文件保留时长,设置下载密码,允许上传者随时删除文件,设置下载一次就自动删除,二维码下载,上传者还可以选择不保存在服务器里,直接传到免费服务(貌似用的ShareX),还支持在线播放mp3/mp4文件,及一些功能拓展,挺强的,安装也简单。

截图

请输入图片描述 请输入图片描述

安装

Github地址:https://github.com/root-gg/plik

可以直接用作者编译好的包安装,下载地址:点击查看

1
2
3
4
5
6
7
#下载最新版本的Plik,目前是1.2.3版本
wget https://github.com/root-gg/plik/releases/download/1.2.3/plik-1.2.3-linux-64bits.tar.gz
#解压
tar xzvf plik-1.2.3-linux-64bits.tar.gz
#运行
cd plik-1.2.3/server
./plikd

然后就可以访问IP:8080查看了,程序的配置文件在server/plikd.cfg,可以设置监听端口/最大上传/默认保存天数等等,上传文件默认保存在server/files

如果Web界面打不开,可能需要开启防火墙端口。

1
2
3
4
5
#CentOS 6
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart

最后设置完毕后就需要程序常驻后台了,可以使用screen命令。

Docker安装

1、安装Docker

1
2
3
4
5
6
7
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

2、安装镜像

1
2
3
4
5
6
#建一个保存Plik数据的文件夹
mkdir /Plik && cd /Plik
#下载配置文件,可以保持默认,也可以编辑
wget https://raw.githubusercontent.com/root-gg/plik/master/server/plikd.cfg
#启动容器
docker run --name pilk -d -p 8080:8080 -v /Plik/plikd.cfg:/home/plik/server/plikd.cfg -v /Plik/files:/home/plik/server/files rootgg/plik

然后就可以打开IP:8080了,配置文件为/Plik/plikd.cfg,上传文件在/Plik/files,当然外部端口,文件路径可自行修改。

最后我们需要给外部存储目录,也就是/Plik/files文件夹777权限,不然上传会失败。

1
chmod 777 /Plik/files

域名访问

如果想通过域名访问的就需要使用域名反代了,这里就使用最方便的Caddy,请提前解析好域名到服务器,过程会自动签发SSL

1、安装Caddy 使用命令:

1
2
3
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

2、配置Caddy

1
2
3
4
5
6
#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
echo "xx.com {
gzip
tls admin@moerats.com
proxy / 0.0.0.0:8080
}" > /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

3、启动Caddy

1
/etc/init.d/caddy start

如果启动失败,使用tail -f /tmp/caddy.log查看启动日志,可以自己分析下错误日志,如果不会就留言。

启动成功后就可以打开https://xx.com访问了。最后Plik附带一个功能强大的golang多平台cli客户端,不过使用起来挺麻烦的,适用性貌似不是很大,就不研究了。当然如果你有兴趣,可以查看Github项目地址。

说明:很多人的VPS服务器由于内存太小,会导致很多进程被杀掉,这时候就需要我们添加Swap虚拟内存了,这里就整了个一键脚本方便懒人或小白使用。

脚本

提示:脚本不支持OpenVZ架构,安装会自动退出。

运行命令:

1
wget https://yun.939.me/sh/swap.sh && bash swap.sh

swap_add.png

本文搬运自https://www.moerats.com/archives/722/

一、安装

1
wget --no-check-certificate -qO /tmp/appex.sh "https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh" && bash /tmp/appex.sh 'install'

二、更换内核方法: (一)CentOS系统更换内核 1、CentOS 6 32位系统更换内核为:2.6.32-504.el6

1
2
rpm -ivh http://vault.centos.org/6.6/os/i386/Packages/kernel-firmware-2.6.32-504.el6.noarch.rpm --nodeps --force
rpm -ivh http://vault.centos.org/6.6/os/i386/Packages/kernel-2.6.32-504.el6.i686.rpm --force

2、CentOS 6 64位系统更换内核为:2.6.32-642.el6.x86_64

1
2
rpm -ivh http://vault.centos.org/6.8/os/x86_64/Packages/kernel-firmware-2.6.32-642.el6.noarch.rpm --nodeps --force
rpm -ivh http://vault.centos.org/6.8/os/x86_64/Packages/kernel-2.6.32-642.el6.x86_64.rpm --force

3、CentOS 7 系统更换内核为: 3.10.0-229.1.2.el7.x86_64

1
rpm -ivh http://vault.centos.org/7.0.1406/os/x86_64/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force

4、查看内核是否更换成功

1
rpm -qa  grep kernel

如果成功,重启VPS即可。

(二)Debian系统更换内核 debian 8 64更换内核为3.16.0.4-deb内核 1、安装新内核

1
2
wget http://security-cdn.debian.org/pool/updates/main/l/linux/linux-image-3.16.0-4-amd64_3.16.43-2+deb8u5_amd64.deb
dpkg -i linux-image-3.16.0-4*.deb

2、删除就内核

1
dpkg -lgrep linux-image

会显示所有内核,删除除3.16.0.4以外的

1
apt-get remove 内核

更新系统引导

1
update-grub

重启即可

三、强制安装指定内核版本的锐速:

查看内核 uname -r,发现版本号为3.10.0-514.2.2.el7.x86_64 查看版本库:https://github.com/0oVicero0/serverSpeeder_kernel/blob/master/serverSpeeder.txt,找个最接近的 开始安装

1
wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh install '3.10.0-123.el7.x86_64'

查看是否启动:/appex/bin/serverSpeeder.sh start 如果不能,换个版本,继续重复以上步骤。

四、卸载

1
wget --no-check-certificate -qO /tmp/appex.sh "https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh" && bash /tmp/appex.sh 'uninstall'

五、使用

1
2
3
4
5
启动命令 /appex/bin/serverSpeeder.sh start
停止加速 /appex/bin/serverSpeeder.sh stop
状态查询 /appex/bin/serverSpeeder.sh status
更新许可 /appex/bin/serverSpeeder.sh renewLic
重新启动 /appex/bin/serverSpeeder.sh restart

特征: 0.#0 Only for Linux.

看完这篇文章,你的 KS3C 等等各种独立服务器将可以同时实现多种功能。

针对 PT

  • 多客户端刷 PT(Deluge,utorrent,qbittorrent,rtorrent,transmission…..so on..)
  • 压片
  • 制种发种
  • 115/百度网盘同步
  • 还有最重要的~挂 QQ!!hah 等

针对虚拟化

  • 你可以开设无限的独立 IPV6,NAT 的 IPV4 小鸡
  • 如果你有额外的 ipv4,还可以开设独立 IPV4 独立 IPV6 的小鸡!
  • 支持 windows+linux 任意系统,其中 win 必须 KVM 架构,linux 可 KVM 可 lxc(类似 openvz)

_1._前言

对于大多数 PTbox 玩家来说,手里的盒子,也就是各种各样的独立服务器,买回来后仅仅也就是用来安装一个 rutorrent 或者 deluge 这样的 pt 客户端,然后刷刷流量,这样对于一个独立服务器来说简直太浪费了,就拿 KS3C 来说,KS3C 的标准配置是 i3+8g+2t+100Mbps,高配的甚至有 I5+16G 内存的配置,这种级别配置可远远不止可以干这些!

于是想到了利用这些服务器打造个同时能够支持 win+linux 双系统适合 PTer 的服务器,linux 下安装诸如 qBittorrent、ruTorrent、deluge 等等的客户端,win 下可以使用 utorrent 这个只支持 win 的客户端,然后还可以在 win 系统下直接进行制种,然后通过任意客户端做种,然后像百度网盘这种只能很好的在 win 下运行的网盘,你还可以在你的盒子里实时与度盘同步,等等等等。。都可以在同一个服务器上实现,而不仅仅是安装一个 PT 客户端~~接下来看教程吧!

2.安装环境:

_2.1._操作系统:Debian9

说明一下,必须要是D****ebian9系统,原因不详细说了,主要是因为能用最新 PVE 内核,支持 BBR 加速, 对于KS或者SYS这种ovh系列的服务器,只需要安装官方的 VPS Proxmox VE 5 (64bits) 这个模板即可,可以省略安装 proxmox 这一步!!! 对于online系列的服务器,如果有硬 raid,你可以直接使用系统的 proxmox5 模板,如果是软 raid,默认只能 raid1,所以就安装 debian9 吧。 如何你的服务器的提供商没有提供 debian9 系统,比如 oneprovider 的 15 欧等等,只能安装 debian7,你可以参考以下操作

debian7 升级为 debian8:

  1. apt-get update
  2. apt-get upgrade
  3. sed s/wheezy/jessie/ /etc/apt/sources.list tee /etc/apt/sources.list
  4. apt-get update
  5. apt-get upgrade
  6. apt-get dist-upgrade

debian8 升级为 debian9:

  1. apt-get update
  2. apt-get upgrade
  3. sed s/jessie/stretch/ /etc/apt/sources.list tee /etc/apt/sources.list
  4. apt-get update
  5. apt-get upgrade
  6. apt-get dist-upgrade

期间遇到任何提示都选择 Y 就行了,最后都执行完了后执行 reboot 重启系统!

反正总之就是你需要 debian9 的系统!!!!!

2.2.服务器环境:

DigitalOcean 的 4 核 8G 内存方案 Debian9.4 系统

ipv4:****167.99.172.150

ipv6:****2604:a880:2:d0::add:1001

这里建议最低双核 4G 内存的机器使用本文方案!否则可能会用的不愉快~

3.安装 proxmox

proxmox 是一款只支持 debian 系统的虚拟化环境,可以安装基于 KVM 和 LXC(openvz 进化版)的虚拟机,使用很方便,有图形界面。接下来安装 proxmox5.X 系列。

_3.1._编辑/etc/hosts

比如你登录服务器后显示 root@server1,那么你的服务器的名称就是server1, 你可以通过修改**/etc/hostname**文件修改它。然后你需要保持你的/etc/hosts 文件如下

  1. 127.0.0.1 localhost.localdomain localhost

  2. 167.99.172.150 server1.proxmox.com server1 pvelocalhost

  3. # The following lines are desirable for IPv6 capable hosts

  4. ::1 localhost ip6-localhost ip6-loopback

  5. ff02::1 ip6-allnodes

  6. ff02::2 ip6-allrouters

_3.2._安装 Proxmox VE

配置 repository

  1. echo “deb http://download.proxmox.com/debian/pve stretch pve-no-subscription” > /etc/apt/sources.list.d/pve-install-repo.list
  2. wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
  3. apt update && apt dist-upgrade

遇到如下界面选择keep the local version回车即可!

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

安装 Proxmox VE 包

  1. apt install proxmox-ve postfix open-iscsi

遇到以下提示,由于我们只是来跑 PT,我们选择local only即可。

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

然后重启你的系统 proxmox5.X 就安装完成了!

_4._配置 Proxmox 及 samba

_4.1._开启 BBR 及 ipv4、ipv6 转发

编辑**/etc/sysctl.conf**

按 Ctrl+K 清空原有所有配置,改成如下

  1. net.core.default_qdisc=fq
  2. net.ipv4.tcp_congestion_control=bbr
  3. net.ipv4.conf.all.rp_filter=1
  4. net.ipv4.icmp_echo_ignore_broadcasts=1
  5. net.ipv4.conf.default.forwarding=1
  6. net.ipv4.conf.default.proxy_arp = 0
  7. net.ipv4.ip_forward=1
  8. kernel.sysrq = 1
  9. net.ipv4.conf.default.send_redirects = 1
  10. net.ipv4.conf.all.send_redirects = 0
  11. net.ipv6.conf.eth0.autoconf=0
  12. net.ipv6.conf.eth0.accept_ra=2
  13. net.ipv6.conf.default.forwarding=1
  14. net.ipv6.conf.all.forwarding=1
  15. net.ipv6.conf.default.proxy_ndp=1
  16. net.ipv6.conf.all.proxy_ndp=1

注意:上面的 eth0 改成你对应的主端口!

然后执行以下命令使设置生效

  1. sysctl -p

_4.2._配置网络端口

执行命令

  1. ip addr

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

如上图,这里的主端口是 eth0,也就是绑定了你 ipv4 和 ipv6 地址的端口,根据你的情况看!

于是我们要修改**/etc/network/interface**文件,默认的如下

  1. # Generated by the DigitalOcean provisioning process on 2018-04-09T13:42:50Z

  2. # See ‘man interfaces’ on a Debian/Ubuntu systems.

  3. # The network configuration was generated from http://169.254.169.254/metadata/v1.json.

  4. # You may also find the it on the locally attached CDROM under ‘digitalocean_meta_data.json’

  5. auto lo

  6. iface lo inet loopback

  7. dns-nameservers 67.207.67.2 67.207.67.3

  8. auto eth0

  9. iface eth0 inet static

  10. hwaddress 5e:9a:17:e6:df:9d

  11. address 167.99.172.150

  12. netmask 255.255.240.0

  13. gateway 167.99.160.1

  14. post-up ifup eth0:1

  15. post-up ifup eth0:2

  16. auto eth0:1

  17. iface eth0:1 inet6 static

  18. hwaddress 5e:9a:17:e6:df:9d

  19. address 2604:A880:0002:00D0:0000:0000:0ADD:1001/64

  20. gateway 2604:a880:0002:00d0:0000:0000:0000:0001

  21. auto eth0:2

  22. iface eth0:2 inet static

  23. hwaddress 5e:9a:17:e6:df:9d

  24. address 10.46.0.6/255.255.0.0

 

我们将其改成如下内容

  1. # Generated by the DigitalOcean provisioning process on 2018-04-09T13:42:50Z

  2. # See ‘man interfaces’ on a Debian/Ubuntu systems.

  3. # The network configuration was generated from http://169.254.169.254/metadata/v1.json.

  4. # You may also find the it on the locally attached CDROM under ‘digitalocean_meta_data.json’

  5. auto lo

  6. iface lo inet loopback

  7. dns-nameservers 67.207.67.2 67.207.67.3

  8. auto vmbr0

  9. iface vmrb0 inet static

  10. hwaddress 5e:9a:17:e6:df:9d

  11. address 167.99.172.150

  12. netmask 255.255.240.0

  13. gateway 167.99.160.1

  14. post-up ifup vmbr0:1

  15. auto vmbr0:1

  16. iface vmbr0:1 inet6 static

  17. hwaddress 5e:9a:17:e6:df:9d

  18. address 2604:A880:0002:00D0:0000:0000:0ADD:1001/64

  19. gateway 2604:a880:0002:00d0:0000:0000:0000:0001

  20. auto vmbr1

  21. iface vmbr1 inet static

  22. address 192.168.1.254

  23. netmask 255.255.255.0

  24. bridge_ports none

  25. bridge_stp off

  26. bridge_fd 0

  27. post-up iptables -t nat -A POSTROUTING -s ‘192.168.1.0/24’ -o vmbr0 -j MASQUERADE

  28. post-down iptables -t nat -D POSTROUTING -s ‘192.168.1.0/24’ -o vmbr0 -j MASQUERADE

  29. post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 3389 -j DNAT --to 192.168.1.10:3389

  30. post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 3389 -j DNAT --to 192.168.1.10:3389

  31. post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8888 -j DNAT --to 192.168.1.10:8888

  32. post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 8888 -j DNAT --to 192.168.1.10:8888

  33. post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 9999 -j DNAT --to 192.168.1.10:9999

  34. post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 9999 -j DNAT --to 192.168.1.10:9999

  35. post-up iptables -t nat -A PREROUTING -i vmbr0 -p udp --dport 9999 -j DNAT --to 192.168.1.10:9999

  36. post-down iptables -t nat -D PREROUTING -i vmbr0 -p udp --dport 9999 -j DNAT --to 192.168.1.10:9999

  37. auto vmbr2

  38. iface vmbr2 inet6 static

  39. address 2604:a880:2:d0::add:1002

  40. netmask 64

  41. bridge_ports none

  42. bridge_stp off

  43. bridge_fd 0

  44. post-up echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp

  45. post-up echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

  46. post-up echo 1 > /proc/sys/net/ipv6/conf/default/forwarding

  47. post-up /sbin/ip -f inet6 neigh add proxy 2604:a880:2:d0::add:1002 dev vmbr2

  48. post-up /sbin/ip -f inet6 neigh add proxy 2604:a880:2:d0::add:1003 dev vmbr0

  49. post-up /sbin/ip -f inet6 route add 2604:a880:2:d0::add:1003 dev vmbr2

保存退出,然后执行命令

  1. /etc/init.d/networking restart

这样我们的网络就配置好了

_4.3._配置 samba

安装 samba

  1. apt-get update
  2. apt-get install samba

编辑/etc/samba/smb.conf 文件,在最后添加如下内容

  1. [models]
  2. path = /home/ptdown
  3. available = yes
  4. browsable = yes
  5. writable = yes
  6. create mask = 0777
  7. write list = windows

给文件夹权限

  1. chmod -R 777 /home/ptdown

添加 samba 用户,并设置密码

  1. adduser windows
  2. smbpasswd -a windows

重启 samba 服务让设置生效

  1. /etc/init.d/samba reload
  2. /etc/init.d/samba restart

_5._安装 windows 系统

这里我们的 IP 是167.99.172.150,于是我们打开

  1. https://167.99.172.150:8006

然后输入你的 root 账户登录就行了,语言可选 Chinese 中文!界面如下

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

_5.1._下载镜像

首先我们需要下载 windows 的镜像,这里我们选择安装 windows2008_R2 系统,并将镜像放到**/var/lib/vz/template/iso/**目录

_5.2._创建虚拟机

①点击右上角的创建虚拟机,随便设置个名称,点下一步。

②操作系统:镜像文件选择刚才的那个 ISO,设置如下图,根据你要安装的 windows 版本设置,这里是 win2008_r2。

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

③硬盘:大小随意设置,最低 30G 吧,这个无所谓!其它设置默认,不影响操作!

④CPU:如果你是 i3/i5,核那里选择 2 就可以了一般,i7/E3 之类的可以选择 3 或者 4,根据你的服务器情况,这个可以随时更改的,没关系~

⑤内存:一般设置成 2048 也就是 2G 就可以了,win2008 不怎么耗内存的!

⑥网络:选择桥接模式,桥接刚才我们创建的那个 vmbr1 端口就可以了!

最后确认完成就 OK 了

接下来点击启动我们选中左边刚创建的那个虚拟机,然后点击启动,再点控制台!

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

_5.3._安装 win2008

打开控制台后,首先点击下一步,然后点击立即安装,然后选择下图中的那项点下一步

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

然后接受条款,下一步,然后选择自定义安装,下一步,然后直接下一步开始 win2008 的安装,接下来等个几分钟就可以进入系统了。

_5.4._配置网络

进入系统后,首先我们将 windows 防火墙关闭,然后我们配置网络如下,保存设置,这样网络就通了

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

_4.3._配置 samba

我们在之前在 linux 上配置好了 samba,现在只用连接就行了,打开计算机

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

然后点浏览,点击这个 IP 地址,然后输入用户名密码,就是你之前设置的那个 samba 用户名密码,然后选中 models,确认再确认就行了,于是你的电脑多了一个 Z 盘,这就是你的 linux 上的那个目录!

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

此时,windows 与 linux 已经文件互通了,因为是内网,虽然是挂载的,但跟本地磁盘没有区别!!

_6._使用说明

_6.1._远程桌面

在 windows 下,因为上面设置了 3389 端口转发,win 远程桌面的默认端口,所以你可以在任意一台 windows 电脑上运行 mstsc 打开远程桌面连接,如下,然后输入你刚才设置的密码,用户名是 administrator,即可远程连接!如何你没有设置 3389,比如 3390,那么你可以在计算机那里输入 IP:3390 即可连接!

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

_6.2._utorrent 使用

由于我上面只转发了 3389 以及 8888 和 9999 端口,其中 3389 用于远程桌面,所以 8888 和 9999 可以分别用于 utorrent 的 webui 和连接端口,在 utorrent 中设置如下

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

_7._常见问题

_7.1._interface 文件详解

解释下上面的各种配置

vmbr0~vmbr2: proxmox 的虚拟端口,你可以接着按这个示例添加!

post_up-post_down:设置端口转发的,因为服务器大部分就一个 IP,这样可以设置端口转发,让外界直接和虚拟机通信

vmbr2:上面红色的内容表示添加了一个额外的 ipv6 地址,大多数服务商给的 ipv6 都是/64 之类的,其实这就意味着,你拥有很多很多很多地址,所以你可以按照上面示例接着在后面添加地址,比如这里就是下面这个

  1. post-up /sbin/ip -f inet6 neigh add proxy 2604:a880:2:d0::add:1004 dev eth0
  2. post-up /sbin/ip -f inet6 route add 2604:a880:2:d0::add:1004 dev vmbr2

配置 ipv6 地址

首先为虚拟机添加一个新的网络接口 vmbr2,它本身 ipv6 地址就作为网关地址,你自己添加的额外的 ipv6 地址就作为虚拟机的地址,ipv6 的 DNS 就设置为 google 的就可以了 2001:4860:4860::8888 和 2001:4860:4860::8844,然后小鸡的 ipv6 不出意外就通了,理论上硬件允许的话你可以开无限个虚拟机

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

7.2.免重启添加转发规则

比如我们在 vmbr1 下新加了一个转发 6666 到虚拟机 6666 的规则,我们可以执行以下命令

  1. ifdown vmbr1
  2. ifup vmbr1

然后在虚拟机的网络切换那里把网络端口随便切换一个,再切换回来,就直接生效了!

_7.3._添加额外的独立 IP

这个很简单,主要一般是要绑定 MAC

以 SYS 系列为例,假设我买了个 IP 192.168.1.100,然后后台有个地方可以设置 Virtual Mac,设置好了,把新添加的虚拟机的 mac 改成这个 Vitual Mac,然后设置

IP 地址:192.168.1.100,

掩码:255.255.255.255

网关:192.168.1.254

记住桥接网络端口是你的默认的网络端口,比如我这里是 vmbr0!

即可,其它主机商类似,可以看看他们的配置 WIKI!

_7.4._KVM 虚拟机无法关机

centos 执行

yum install acpid

debian/ubuntu 执行

apt-get install acpid

_7.5._虚拟机自启动

选中你要自启动的虚拟机,选中右边的选项,开机自启动设置为是即可

_7.6._配置集群

_7.6.1._对于内网的机器

假设三台机器,IP 分别为

机器 A:192.168.100.10

机器 B:192.168.100.11

机器 C:192.168.100.12

全新安装完 proxmox 后,假设 A 为主机,在主机上执行

pvecm create YOUR-CLUSTER-NAME

在其它需要加入的小鸡上执行

pvecm add 192.168.1.10

这样就添加成功了,注意,必须是同一个网段!!!

_7.6.2._对于外网的机器

这个主要涉及到跨网段,我说个思路吧

假设三台机器,hostname 分别为 a、b、c,IP 分别为

机器 A:92.18.24.10

机器 B:12.16.87.11

机器 C:19.68.64.12

那么我们需要做两件事,第一是修改 hostname,这是写下 a 的示例,b,c 类似

  1. 127.0.0.1 localhost.localdomain localhost

  2. 92.18.24.10 a.proxmox.com a pvelocalhost

  3. # corosync network hosts

  4. 10.10.1.151 a-corosync.proxmox.com a-corosync

  5. 10.10.1.152 b-corosync.proxmox.com b-corosync

  6. 10.10.1.153 c-corosync.proxmox.com c-corosync

  7. # The following lines are desirable for IPv6 capable hosts

  8. ::1 localhost ip6-localhost ip6-loopback

  9. ff02::1 ip6-allnodes

  10. ff02::2 ip6-allrouters

然后我们需要为每个虚拟机添加一个新的 corosync 端口,然后你需要通过 GRE 隧道之类的方式打通这三个 corosync 端口,实现三个机器诸如 10.10.1.X 这样的内网 IP 能互相 PING 的通!

然后我们假设 A 为主机,在 a 上执行命令创建集群

pvecm create YOUR-CLUSTER-NAME -bindnet0_addr 10.10.1.151 -ring0_addr a-corosync

在 b、c 上分别执行命令加入集群

pvecm add 92.18.24.10 -ring0_addr b-corosync
pvecm add 92.18.24.10 -ring0_addr c-corosync

这样就可以了!!

_7.7._配置 NFS 存储

proxmox 其实是支持自定义定时备份的,但需要一个存储系统,好像支持的很多,我选了 nfs,然后对于备份,还是别在同一台机器,这里的教程是针对 debian 系统的!如下

安装 nfs

apt-get install nfs-kernel-server

创建共享目录

mkdir /home/nfs

编辑/etc/exports 文件,在文件末添加共享目录信息

/xx/xxx/ *(rw,sync,no_root_squash)

*填写你所允许的客户端 IP,也就是 proxmox 服务器的 IP,/xx/xxx/是共享目录,这里我们是/home/nfs,配置完成后我们保存退出,执行命令使配置生效

exportfs -r

然后点击 proxmox 主页左边的数据中心,右边的存储,添加 nfs,然后配置如下

Proxmox 终极教程/打造纯 IPV6 虚拟机/独立 IP 虚拟机/proxmox 集群/

其中 ID 随便设置,服务器就是你刚配置 nfs 的服务器 IP,Export 就是你设置的共享目录,内容里面可以选择支持备份的对象。

_8._总结

其实很简单,我所有的 IP 用的都是实例中的,你只要对着设置肯定没错,简单说就是最后实现了硬盘空间在 linux 和 windows 上的互通,

在这篇文章中,我们最开始的设置的 linux 的 samba 目录是/home/ptdown,最后就是这个/home/ptdown 挂载到了 windows 的 Z 盘上而已。

至此你可以猥琐欲为了。linux 下可以支持安装各种 PT 客户端,下载目录设置成共享的目录,windows 上便可以直接在挂载的盘中看到,

然后你可以 115 啊,百度网盘啊同步,你可以在 win 上压片啊,win 上跑 utorrent 啊。。。so on…..!

需要各种稳定版本的 UT,或者有任何问题都欢迎加 Q 群PTboxClub 进行讨论!!

昨天晚上花了一个小时的时间把挖站否VPS监控SSL证书由原来的TrustAsia即赛门铁克(Symantec)个人DV SSL证书换成了letsencrypt免费SSL证书,原因是Chrome 70开始将开始不再信任 Symantec证书了,自己正在用的Chromium浏览器已经不能再打开Symantec证书的网站了。

赛门铁克(Symantec)个人DV SSL证书是在腾讯云申请的,实际上国内的阿里云、七牛云、又拍云等都提供了免费一年赛门铁克(Symantec)个人DV SSL证书。自己犯了错,干脆把之前的SSL产品趁“打烊”之前清仓大处理了?这也怪不得赛门铁克(Symantec)在国内搞了这么多的免费推广

本篇文章就来分享一下利用acme.sh来一键申请和安装letsencrypt免费SSL证书,基本上可以适合各大VPS主机服务器,而且acme.sh可以自动更新SSL证书,再也不用担心SSL证书会过期的问题的。从我的个人使用经验来看,官方推荐的Certbot还是不如acme.sh好用一些。

更多的VPS主机及SSL证书还可以看看:

  1. 免费SSL证书收集整理汇总-免费给网站添加Https安全加密访问
  2. CN2 GIA VPS主机收集整理汇总-电信,联通,移动三网CN2 GIA线路VPS主机
  3. 启用HSTS并加入HSTS Preload List让网站Https访问更加安全-附删除HSTS方法

一、第一步:一键安装acme.sh

网站:

  1. https://letsencrypt.org/
  2. https://github.com/Neilpang/acme.sh

使用以下可以一键安装:

1
curl https://get.acme.sh  sh

或者:

1
wget -O - https://get.acme.sh  sh

使用喜欢Git命令也可以用以下命令安装:

1
2
3
git clone https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install

脚本主要做了以下事情:

1.生成复制了acme.sh 到你的($HOME): ~/.acme.sh/目录下 ,后面所有的证书都会在这个目录生成.

2.Create alias for: acme.sh=~/.acme.sh/acme.sh. 注意:安装完成后你需要关闭再打开终端才可以让alias 生效。

3.增加了一个定时任务,用于SSL证书更新.

你可以使用Crontab -l来查看当前的定时任务:

同时你也可以使用SFTP来查看acme.sh 文件夹。

二、第二步:一键签发SSL证书

2.1 单个域名SSL

注意:-w后面是域名的根目录,请根据实际修改.

1
2
3
acme.sh --issue -d wzfou.com -w /home/wwwroot/wzfou.com
#默认签发的是RSA,如果你想签发ECC证书,请使用以下命令
acme.sh --issue -d wzfou.com -w /home/wwwroot/wzfou.com --keylength ec-256

或者:

1
2
3
acme.sh --issue -d wzfou.com -w /home/wzfou/public_html
#默认签发的是RSA,如果你想签发ECC证书,请使用以下命令
acme.sh --issue -d wzfou.com -w /home/wzfou/public_html --keylength ec-256

或者:

1
2
3
acme.sh --issue -d wzfou.com -w /var/www/html
#默认签发的是RSA,如果你想签发ECC证书,请使用以下命令
acme.sh --issue -d wzfou.com -w /var/www/html --keylength ec-256

2.2 多个域名SSL

1
2
3
acme.sh --issue -d wzfou.com -d www.wzfou.com -d cp.wzfou.com -w /home/wwwroot/wzfou.com
#默认签发的是RSA,如果你想签发ECC证书,请使用以下命令
acme.sh --issue -d wzfou.com -d www.wzfou.com -d cp.wzfou.com -w /home/wwwroot/wzfou.com --keylength ec-256

2.3 泛域名SSL

注意:泛域名SSL证书签发要用到DNS验证的方式,参考2.4部分。

1
2
3
4
5
6
acme.sh --issue --dns dns_dp -d wzfou.com -d *.wzfou.com
#默认签发的是RSA,如果你想签发ECC证书,请使用以下命令
acme.sh --issue --dns dns_dp -d wzfou.com -d *.wzfou.com --keylength ec-256
#可选长度有:
ec-256 (prime256v1, “ECDSA P-256”)
ec-384 (secp384r1, “ECDSA P-384”)

2.4 无法验证域名?

上面通过指定网站根目录的验证域名的方法有时会失效,也有朋友VPS上没有安装Web环境,无法使用80端口。

这里acme.sh 提供了一个添加DNS API自动验证域名的方式,首先到你的域名DNS处获得API,这里我以NS1 DNS域名解析来作为演示,首先到官网后台获得API(其它的DNS,如DNSPOD、Cloudxns、阿里云DNS等使用API的方法见本文第四部分)。

然后是导入NS1.com API

1
export NS1_Key="fdmlfxxxxxxxfk"

现在就可以开始签发SSL证书了:

1
2
3
acme.sh --issue --dns dns_nsone -d wzfou.com -d www.wzfou.com
#或者签发ECC证书
acme.sh --issue --dns dns_nsone -d wzfou.com -d www.wzfou.com --keylength ec-256

使用DNS API验证域名的方式有一个好处就是不需要WEB访问就可以签发SSL证书,acme.sh 会在你的DNS域名解析处添加一个TXT记录,验证成功后会自动删除该TXT记录。

三、第三步:安装letsencrypt SSL证书

这一步部分其实可以根据各自的实际来执行了,为了让acme.sh 可以自动更新续期SSL证书,建议使用以下操作方法来执行,这样acme.sh 每次更新完了SSL证书后都自动按照你第一次安装SSL证书的方法执行一遍同步SSL证书的命令。

Apache 服务器安装letsencrypt SSL证书如下::

1
2
3
4
5
acme.sh --install-cert -d wzfou.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd "service apache2 force-reload"

Nginx 服务器安装letsencrypt SSL证书e:

1
2
3
4
acme.sh --install-cert -d wzfou.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx force-reload"

实际操作中,大家根据需要调整好证书和密钥的路径,由于我使用的ECC证书,并且重启Apache2的命令无效,所以我用的以下命令:

1
2
3
4
5
acme.sh --install-cert -d ping.wzfou.com --ecc \
--cert-file /etc/pki/tls/certs/ping.wzfou.com.cer \
--key-file /etc/pki/tls/certs/ping.wzfou.com.key \
--fullchain-file /etc/pki/tls/certs/fullchain.cer \
--reloadcmd "/etc/init.d/httpd force-reload"

执行命令后,我们就可以在路径中看到已经复制过来的证书还有Key等文件了,下次acme.sh 执行更新SSL证书时也会同样执行上述的命令。否则,需要自己手动复制粘贴证书。

最后记得到Apache或者Nginx的配置中调整好证书和Key的路径,重启Apache或者Nginx就算完成了。

如果你发现letsencrypt SSL证书不能定时更新,你也可以自己手动强制更新:

1
acme.sh --renew -d example.com --force

如果是ECC cert,使用以下命令:

1
acme.sh --renew -d example.com --force --ecc

目前wzfou.com用的就是letsencrypt SSL证书。

四、附录:各大DNS API获取与签发SSL

说明

  1. 附录参考自:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
  2. DNS解析服务汇总:https://wzfou.com/mianfei-dns/
  3. 签发泛域名SSL时请把命令部分:-d www.example.com 改成 :-d *.example.com

4.1 CloudFlare DNS API

First you need to login to your CloudFlare account to get your API key.

1
2
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_cf -d example.com -d www.example.com

The CF_Key and CF_Email will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.2 DNSPod DNS API

First you need to login to your DNSPod account to get your API Key and ID.

1
2
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_dp -d example.com -d www.example.com

The DP_Id and DP_Key will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.3 CloudXNS DNS API

First you need to login to your CloudXNS account to get your API Key and Secret.

1
2
export CX_Key="1234"
export CX_Secret="sADDsdasdgdsf"

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_cx -d example.com -d www.example.com

The CX_Key and CX_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.4 阿里云Aliyun DNS API

First you need to login to your 阿里云 Aliyun account to get your API key. https://ak-console.aliyun.com/#/accesskey

1
2
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_ali -d example.com -d www.example.com

The Ali_Key and Ali_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.5 GoDaddy DNS API

First you need to login to your GoDaddy account to get your API Key and Secret. https://developer.godaddy.com/keys/

Please create a Production key, instead of a Test key.

1
2
export GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export GD_Secret="asdfsdafdsfdsfdsfdsfdsafd"

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_gd -d example.com -d www.example.com

The GD_Key and GD_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.6 PowerDNS DNS API

First you need to login to your PowerDNS account to enable the API and set your API-Token in the configuration. https://doc.powerdns.com/md/httpapi/README/

1
2
3
4
export PDNS_Url="http://ns.example.com:8081"
export PDNS_ServerId="localhost"
export PDNS_Token="0123456789ABCDEF"
export PDNS_Ttl=60

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_pdns -d example.com -d www.example.com

The PDNS_Url, PDNS_ServerId, PDNS_Token and PDNS_Ttl will be saved in ~/.acme.sh/account.confand will be reused when needed.

4.7 Amazon Route53 DNS API

方法见:https://github.com/Neilpang/acme.sh/wiki/How-to-use-Amazon-Route53-API

1
2
export AWS_ACCESS_KEY_ID=XXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXX

To issue a cert:

1
acme.sh --issue --dns dns_aws -d example.com -d www.example.com

The AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.8 Linode DNS API

First you need to login to your Linode account to get your API Key. https://manager.linode.com/profile/api

Then add an API key with label ACME and copy the new key.

1
export LINODE_API_KEY="..."

Due to the reload time of any changes in the DNS records, we have to use the dnssleep option to wait at least 15 minutes for the changes to take effect.

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_linode --dnssleep 900 -d example.com -d www.example.com

The LINODE_API_KEY will be saved in ~/.acme.sh/account.conf and will be reused when needed.

4.9 DigitalOcean DNS API (native)

You need to obtain a read and write capable API key from your DigitalOcean account. See: https://www.digitalocean.com/help/api/

1
export DO_API_KEY="75310dc4ca779ac39a19f6355db573b49ce92ae126553ebd61ac3a3ae34834cc"

Ok, let’s issue a cert now:

1
acme.sh --issue --dns dns_dgon -d example.com -d www.example.com

4.10 Namesilo DNS API

You’ll need to generate an API key at https://www.namesilo.com/account\_api.php Optionally you may restrict the access to an IP range there.

1
export Namesilo_Key="xxxxxxxxxxxxxxxxxxxxxxxx"

And now you can issue certs with:

1
acme.sh --issue --dns dns_namesilo --dnssleep 900 -d example.com -d www.example.com

4.11 使用自定义API

If your API is not supported yet, you can write your own DNS API.

Let’s assume you want to name it ‘myapi’:

  1. Create a bash script named ~/.acme.sh/dns_myapi.sh,
  2. In the script you must have a function named dns_myapi_add() which will be called by acme.sh to add the DNS records.
  3. Then you can use your API to issue cert like this:
1
acme.sh --issue --dns dns_myapi -d example.com -d www.example.com

五、总结

letsencrypt免费SSL证书申请与安装过程还是挺简单的,只需要一个VPS主机,不管有没有安装Web环境都可以签发SSL证书,个人觉得DNS验证方式是最方便的。

没有VPS主机的同学该如何使用letsencrypt免费SSL证书呢?方法一:手动在线申请,三个在线免费SSL证书申请地址; 方法二:直接用Cpanel、DirectAdmin面板自带的SSL申请。

功能

先匹配域名,再匹配解析出的ip来决定走primary DNS还是alternative DNS来解析,域名列表(domain_sample)命中,走alternative DNS, 否则走primary DNS,如果解析出的ip不在ip段(ip_network_sample)里,则再去走alternative DNS解析,这样可通过自己组合来完成逻辑上的解析流程。

安装配置(Centos7.4)

创建文件夹并进入

cd / && mkdir overture && cd overture

下载Overture

wget https://github.com/shawn1m/overture/releases/download/1.3.6rc2/overture-linux-amd64.zip

解压文件

unzip overture-linux-amd64.zip

备份初始文件

cp ip_network_sample ip_network_sample.bak

配置文件

echo “0.0.0.0/0” > ip_network_sample vim config.json

配置文件介绍

BindAddress:监听的ip地址和端口号,默认同时监听TCP和UDP端口 PrimaryDNS:主DNS Name:DNS标志 Address:DNS的IP和端口号 Protocol:使用的协议 SOCKS5Address:转发DNS请求到Socket5代理 Timeout:代理到后端的超时时间 EDNSClientSubnet:智能DNS解析,建议设置为auto,根据客户端的IP地址做判断而不是客户端指定的DNS的IP地址 MinimumTTL:Overture缓存解析记录的时长 CacheSize:Overture缓存大小

域名配置

“DomainFile”: “./domain_sample” #这个文件里可放需走alternative DNS的域名, 如google.com, 支持后缀命中 “DomainBase64Decode”: false #这个要false关闭域名列表的64解码,才能用明文来表达域名

IP列表配置

“IPNetworkFile”: “./ip_network_sample” #直接用0.0.0.0/0, 如有特别的逻辑可改

启动Overture

./overture-linux-amd64 -c:指定配置文件路径;默认当前启动路径的下的config.json文件 -l:指定日志路径和日志文件;默认当前启动路径下的overture.log -p:指定进程数;默认当前CPU的核心数 -v:Debug日志模式

 

真麻烦为什么不能自启动???这简直糟糕透了!!!

 

设置Overture自启动

chmod +x /etc/rc.d/rc.local vi /etc/rc.local 并写入 sh /dns.sh vi /dns.sh cd /overture nohup /overture/overture-linux-amd64 -c /overture/config.json -l /overture/overture.log >/dev/null 2>&1 & chmod 777 /dns.sh

大功告成~~~

但是,但是!!!重点在这里!!! 自己搭建Overture耗时耗钱,不想折腾可以直接使用Hi!XNS,已经稳定运行3年,非常可靠乐观!当然不是单纯的Overture那么简单,通过二次开发达到更高水准!非常纯净哦~~ 传送门:https://hixns.com/

一、关闭TLSv1.0提高安全性

大多数是比较老旧系统上自带浏览器不支持,如果是主流用户使用的Chrome、Firefox和国产浏览器基本都兼容。

1
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
二、开启HTTP Strict Transport Security (HSTS)

指示浏览器只使用 HTTPS 连接到目标服务器。这可以防止一些潜在的中间人攻击,包括 SSL 剥离,会话 cookie 窃取(如果没有被 适当保护)。如果遇到任何与证书相关的错误,它还可以阻止浏览器连接到网站。当浏览器访问一个设置相应 HTTP header 的 HTTPS 网站时,HSTS 将被激活。 HSTS 有一个固定期限,由 max-age 字段值控制。这个值可以是静态的,也可以是相对于将来某个特定日期的,你可以设置成 SSL 证书的过期时间。 在浏览器中,HSTS 首选项可以通过提交到 Chromium’s HSTS preload list 来硬编码,这是所有实现 HSTS 使用的浏览器。 注意,HSTS 确实有陷阱。它提供了 include subdomains 选项,这在实践中可能是太宽泛了。此外,客户端错误可能会造成严重的后果——客户端错误的时钟导致它认为服务器的 SSL 证书无效或过期,或者缺少根 CA 证书——将不再导致浏览器中的证书错误。浏览器将完全拒绝访问页面,并且可能会显示让安全专家之外的完全无法理解的错误。

1
Strict-Transport-Security: max-age=31536000
二·1、同时还允许预加载
1
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
三、部署 CSP

内容安全策略(CSP)是网站可以用来限制浏览器操作的安全机制。尽管最初旨在解决跨站点脚本(XSS),CSP 不断发展,并支持对增强TLS安全性有用的功能。特别地,它可以用于限制混合内容,当涉及到第三方网站,HSTS没有帮助。

1
2
Content-Security-Policy: default-src https: 'unsafe-inline' 'unsafe-eval'; 
connect-src https: wss:

 

四、Web Framework Information

许多 web 框架设置 HTTP 头,识别框架或版本号。除了满足用户的好奇心,而且主要作为技术堆栈的广告,这几乎没有什么作用。这些头是不标准的,对浏览器渲染站点的方式没有影响。 从服务器响应中删除这些标头: X-Powered-By, X-Runtime, X-Version 和 X-AspNet-Version。 标记所有 cookie 安全和 HttpOnly。

1
Set-Cookie: Key=Value; path=/; secure; HttpOnly, Key2=Value2; secure; HttpOnly
五、加密优化

如果您的服务器需要支持IE6这种古董级别的浏览器,那么就按照百度的做法,如果说对兼容性没有太大的需求,只要主流的浏览器能够访问那么就不要支持3DES系列的加密套件,如果说想要在保证安全性的同时,也要有最好的兼容性,那么就请按照淘宝的配置方式进行配置。

五·1、类似百度
1
2
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH; 
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
五·2、类似淘宝
1
2
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
五·3、正常
1
2
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
五·3、更安全
1
2
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; 
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

注:转载并合理整理及修改,原著作网站:https://blog.myssl.com/

Table of Contents

一、Ubuntu 16.04搭建方法

Zimbra是著名的开源系统,它一体化地提供了邮件收发、文件共享、协同办公、即时聊天等一系列解决方案,是开源软件中的精品。它拥有美观大气的使用界面,以及非常实用的功能。作为邮件服务器系统,Zimbra更是凭借卓越的稳定性和功能当之无愧地成为开源邮件服务器系统的首选,适合各类型/人数的用户群,尤其适合团队使用。之前我们写过一个简单的Zimbra邮件服务器安装的教程,然而那篇文章写于五年前,对于现在的版本已经不再适用。正好由于前天,Online.net服务器大幅提价,我们不得不迁移之前的服务器,于是需要在新的系统上重新搭建一次Zimbra. 因此,我们这里凭借这个机会再介绍一下如何安装与配置独立的Zimbra开源办公与邮件服务系统,希望对大家有所帮助。多台服务器协同部署的步骤这里不做太多介绍。

1.系统软硬件要求

Zimbra的体量较大,因此对于系统环境的要求较高。首先,系统必须为64位。目前,Zimbra支持的操作系统包括:CentOS 6, CentOS 7, Ubuntu 14.04 LTS, Ubuntu 16.04 LTS, Red Hat Linux 6/7, 以及Oracle Linux 6/7.

关于硬件需求,首先,内存需要8 GB或者以上,建议16 GB. 系统的硬盘占用约为8 GB左右,视自己的需要而定。CPU和其他硬件没有特别需求,但是Zimbra官方说明中有提到,强烈不建议在RAID 5 (包括50)的服务器上搭建Zimbra. 如果您有类似的服务器,建议更改RAID模式,避免RAID 5或者50.

鉴于Zimbra的体量,我们不建议在VPS上安装Zimbra, 而最好是在一台独立服务器上安装。本文的操作环境为Ubuntu 16.04 LTS 64bit.

2.配置DNS

我们简要说明一下一个最简单的zimbra邮件服务器的DNS配置需求。

如果以qing.su域名为例,我们将域名本身qing.su以A记录解析到任意IP, 然后将邮件服务器的hostname, 比如mx.qing.su以A记录解析到我们将要搭建的邮件服务器的IP上。

然后,我们分别将qing.su与mx.qing.su以MX记录解析到mx.qing.su, 优先级可以为任意值。

如果需要用web访问邮箱,可以将mail.qing.su解析到邮件服务器的IP上。

其他记录的设置,比如TXT, SRV等,可以后期根据自己的需要来自行配制。

3.系统环境的设置

毫无疑问,对于任何邮件服务器来说,最重要的前提步骤是正确设置服务器的hostname. 如何正确设置服务器的hostname我们已经强调过多次。我们以mx.example.com为例,当在SSH中执行hostname命令时,应当看到的回显为短主机名,即mx; 而在SSH中执行hostname -f命令时,应当看到的回显为长主机名(FQDN), 即mx.example.com. 若hostname没有正确设置好,请不要继续。

然后,我们用root账户登录SSH, 即可开始安装。(不要sudo, 请直接su到root, 否则会出错)

4.下载并安装软件包

Zimbra各系统软件包的下载地址如下:https://www.zimbra.com/downloads/zimbra-collaboration-open-source/

请按照自己的需求下载。我们这里以Ubuntu 16.04为例。执行:

apt-get update && apt-get upgrade cd /tmp wget https://files.zimbra.com/downloads/8.8.9_GA/zcs-8.8.9_GA_2055.UBUNTU16_64.20180703080917.tgz tar xvzf *.tgz rm -f zcs*.tgz cd zcs* ./install.sh

5.选择安装组件

正确执行上述步骤后,首先会提示是否同意用户协议,选择Y即可。

Do you agree with the terms of the https://qing.su software license agreement? [N] Y

然后会提示选择需要安装的组件,如果您不是特别了解的话可以直接选择默认选项。

Use Zimbra's package repository [Y] Install zimbra-ldap [Y] Install zimbra-logger [Y] Install zimbra-mta [Y] Install zimbra-dnscache [Y] Install zimbra-snmp [Y] Install zimbra-store [Y] Install zimbra-apache [Y] Install https://qing.su[Y] Install zimbra-spell [Y] Install zimbra-memcached [Y] Install zimbra-proxy [Y] Install zimbra-drive [Y] Install zimbra-imapd (BETA - for evaluation only) [N] Install zimbra-chat [Y]

最后,系统会提示是否确认更改,我们需要选择Y。

The system will be modified.  Continue? [N] Y

至此,系统将会下载必要的安装包并自动安装。

6, 配置Zimbra

安装完毕后,系统会弹出命令行菜单,如下面这样:

Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-logger: Enabled 4) zimbra-mta: Enabled 5) zimbra-dnscache: Enabled 6) zimbra-snmp: Enabled 7) zimbra-store: Enabled +Create Admin User: yes +Admin user to create: admin@mx.example.com ******* +Admin Password UNSET +Anti-virus quarantine user: virus-quarantine.6zk4_0qy@mx.example.com +Enable automated spam training: yes +Spam training user: spam.zc3z28w0@mx.example.com +Non-spam(Ham) training user: ham.bkojeqoiq@mx.example.com +SMTP host: mx.example.com +Web server HTTP port: 8080 +Web server HTTPS port: 8443 +Web server mode: https +IMAP server port: 7143 +IMAP server SSL port: 7993 +POP server port: 7110 +POP server SSL port: 7995 +Use spell check server: yes +Spell server URL: http://mx.example.com:7780/aspell.php +Enable version update checks: TRUE +Enable version update notifications: TRUE +Version update notification email: admin@mx.example.com +Version update source email: admin@mx.example.com +Install mailstore (service webapp): yes +Install UI (zimbra,zimbraAdmin webapps): yes 8) zimbra-spell: Enabled 9) zimbra-proxy: Enabled 10) Default Class of Service Configuration: s) Save config to file x) Expand menu q) Quit Address unconfigured (**) items (? - help) 7

这里我们选择7,  进入Store configuration, 并在下一步选择4, 设置管理员密码。

Store configuration 1) Status:                                  Enabled 2) Create Admin User:                       yes 3) Admin user to create:                    admin@mx.example.com ** 4) Admin Password                           UNSET 5) Anti-virus quarantine user:              virus-quarantine.6zk4_0qy@mx.example.com 6) Enable automated spam training:          yes 7) Spam training user:                      spam.zc3z28w0@mx.example.com 8) Non-spam(Ham) training user:             ham.bkojeqoiq@mx.example.com 9) SMTP host:                               mx.example.com 10) Web server HTTP port:                    8080 11) Web server HTTPS port:                   8443 12) Web server mode:                         https 13) IMAP server port:                        7143 14) IMAP server SSL port:                    7993 15) POP server port:                         7110 16) POP server SSL port:                     7995 17) Use spell check server:                  yes 18) Spell server URL:                        http://mx.example.com:7780/aspell.php 19) Enable version update checks:            TRUE 20) Enable version update notifications:     TRUE 21) Version update notification email:       admin@mx.example.com 22) Version update source email:             admin@mx.example.com 23) Install mailstore (service webapp):      yes 24) Install UI (zimbra,zimbraAdmin webapps): yes Select, or 'r' for previous menu [r]

如果有其他选项您希望更改的,也可以一并更改(但是不建议更改端口地址)。更改完毕后,输入r返回上级菜单,然后输入a让更改生效并将配置写入至文件。

*** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Save config in file: [/opt/zimbra/config.11819] Saving config in /opt/zimbra/config.11819...done. The system will be modified - continue? [No] Yes

要忘记最后要输入Yes来保存更改。几秒钟之后,系统就配置完毕。至此,Zimbra安装完毕,我们可以登录后台添加域名、添加用户等进行一系列的管理了。

7.配置SSL

安装完毕Zimbra以后,我们就可以通过https://mx.example.com:7071登录后台,进行管理。此时,SSL证书还没有配置好,我们需要配置SSL, 否则浏览器会一直报错。点击界面下方Get Started –> Install Certificates, 选择Next然后选择Generate the CSR for the commercial certificate authorizer, 然后在弹出来的界面中生成CSR. 我们需要将主域名mx.example.com填在Common Name中,然后在Subjective Alternative Name中添加需要一并生成证书的其他域名,比如example.com, www.example.com, mail.example.com等。点击Next即可生成证书CSR.

有了CSR之后,我们即可申请证书了。Zimbra配置证书的过程比较tricky, 经常会报错,特别是如果在网页后台安装证书时报错的原因很不清晰,导致无法分析错误发生的原因。因此,我们一般选择在SSH中使用命令行的方式安装证书。下面我们以Let’s Encrypt为例安装证书,其他的商业证书的安装较为简单,这里就不再重复。

我们用SSH登录服务器,然后su切换至root. 首先,我们将刚才的CSR保存至/tmp/mx.example.com.csr文件。然后,安装certbot, 签发Let’s Encrypt证书。

apt-get install software-properties-common add-apt-repository ppa:certbot/certbot apt-get update apt-get install certbot

这里有一个小技巧,通常我们签发Let’s Encrypt证书的时候是让它自己生成私钥和CSR的,但是在需要的时候,certbot可以根据已有的CSR来签发证书,只需使用–csr参数即可。因此,我们基于刚刚生成的CSR来签发证书。

certbot certonly --standalone --csr /tmp/mx.example.com.csr

签发的证书和链文件位于/tmp目录内。需要注意的是,Certbot生成的中间链会在Zimbra中校验失败,我们需要下载额外的Root CA和中间链证书。

wget https://letsencrypt.org/certs/isrgrootx1.pem.txt -O ca.crt wget https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt -O ca_intermediary.crt

然后再整理、合并一下证书:

mv 0000_cert.pem commercial.crt cat /tmp/ca_intermediary.crt /tmp/ca.crt > /tmp/ca_chain.crt

现在就可以开始签发安装证书了。安装证书需要使用zimbra用户,这是在安装Zimbra的时候新建的内置用户。

su zimbra

安装之前,我们先验证一下证书。执行

/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/commercial.crt /tmp/ca_chain.crt

如果看到类似于下面的回显,说明合格了。如果报错,大概率是因为Root CA和中间链哪里没有弄对,请仔细检查后再试。

** Verifying '/tmp/commercial.crt' against '/opt/zimbra/ssl/zimbra/commercial/commercial.key' **Tutorial written by https://qing.su** Certificate '/tmp/commercial.crt' and private key '/opt/zimbra/ssl/zimbra/commercial/commercial.key' match. ** Verifying '/tmp/commercial.crt' against '/tmp/ca_chain.crt' Valid certificate chain: /tmp/commercial.crt: OK

证书验证完毕后,执行下面的命令安装并检验:

/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/commercial.crt /tmp/ca_chain.crt /opt/zimbra/bin/zmcertmgr viewdeployedcrt

最后,我们要重启zimbra服务器,让证书生效。

exit service zimbra restart

再次登录https://mx.example.com:7071, 已经可以看到证书生效了。

至此,Zimbra服务器安装完毕并成功配置了SSL证书。在添加好相应的域名之后,即可使用相关用户名和密码登录https://mail.example.com来登录邮箱,界面非常美观大气。可以看到,在邮箱右下角还有聊天窗口,可以和同一个工作组内的伙伴实时通讯并传输文件。

二、CentOS 7的搭建方法

安装要求

1、64位服务器并能设置反向DNS解析(zimbra新版不支持32位操作系统)

2、磁盘空间≥5GB(zimbra默认安装位置/opt 请确保磁盘空间足够 可以挂载到新磁盘)

3、内存≥4GB(编译对内存要求较高,内存小的用户可以设置swap来缓解内存压力)

4、域名一枚

开始

域名解析

zimbra在线安装时要检查MX 安装之前配置好dns MX解析并确认已生效 未生效安装过程会终止

假如>>

邮件服务器IP:138.68.227.28

邮件服务器采用的域名:mail.example.com

对外发送和接收邮件的域名:example.com

mail.example.com. IN A 138.68.227.28

example.com. IN MX 10 mail.example.com.

反向DNS解析

反向解析由主机商提供(有些面板可以设置,不行提交工单)

主要用于发件,确认邮件来源的有效性。

命令查看反向解析是否生效:nslookup -qt=ptr 138.68.227.28 返回指向mail.example.com则成功

关闭sendmail或postfix服务,避免25端口被占用

# centos 6

/etc/init.d/sendmail stop && chkconfig sendmail off

/etc/init.d/postfix stop && chkconfig postfix off

# centos 7

systemctl stop postfix && yum erase postfix

systemctl stop sendmail && systemctl disable sendmail

关闭selinux

防火墙

根据自已需求选择要不要关闭,也可以选用设置防火墙规则

关闭防火墙功能

# centos 6

service iptables stop && chkconfig iptables off

# centos 7

systemctl stop firewalld.service && systemctl disable firewalld.service

添加防火墙规则 开放端口

–A INPUT –m state —state NEW –m tcp –p tcp —dport 80 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 443 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 7071 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 8087 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 8080 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 8443 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 25 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 110 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 143 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 993 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 995 –j ACCEPT

# iptables -F

# iptables -P INPUT DROP

# iptables -P OUTPUT ACCEPT

# iptables -A INPUT -i lo -j ACCEPT

# iptables -A INPUT -s IP-Address-of-your-server/32 -j ACCEPT

# iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

# iptables -A INPUT -p tcp –dport 22 -j ACCEPT

# iptables -A INPUT -p icmp -j ACCEPT

## Zimbra rules for external access ##

# iptables -A INPUT -p tcp –dport 25  -j ACCEPT

# iptables -A INPUT -p tcp –dport 80  -j ACCEPT

# iptables -A INPUT -p tcp –dport 110  -j ACCEPT

# iptables -A INPUT -p tcp –dport 143 -j ACCEPT

# iptables -A INPUT -p tcp –dport 443  -j ACCEPT

# iptables -A INPUT -p tcp –dport 465  -j ACCEPT

# iptables -A INPUT -p tcp –dport 587  -j ACCEPT

# iptables -A INPUT -p tcp –dport 993  -j ACCEPT

# iptables -A INPUT -p tcp –dport 995  -j ACCEPT

# iptables -A INPUT -p tcp –dport 3443  -j ACCEPT

# iptables -A INPUT -p tcp –dport 9071  -j ACCEPT

# iptables -A INPUT -p tcp –dport 7071  -j ACCEPT

配置主机名HOSTNAME

修改配置文件

vi /etc/sysconfig/network 内容 HOSTNAME=mail.example.com

或 命令设置

hostnamectl set–hostname mail.example.com

hostnamectl status

hostname

配置HOSTS

安装时会检查hosts文件内容要否符合要求: 

核查hosts文件中的FQHN是否与与hostname一致,不一致安装中止

不设置返回的错误信息:

ERROR: Installation can not proceeed. Please fix your /etc/hosts file

to contain:

<ip> <FQHN> <HN>

Where <IP> is the ip address of the host,

<FQHN> is the FULLY QUALIFIED host name, and

<HN> is the (optional) hostname–only portion

错误信息2 出错原因也说的很详细了 注释掉有12.0.0.1的行 DO服务器注释掉#centos-512mb-ams2-01 centos-512mb-ams2-01的行

ERROR: Installation can not proceeed. Please fix your /etc/hosts file

to contain:

127.0.0.1 localhost.localdomain localhost

Zimbra install grants mysql permissions only to localhost and

localhost.localdomain users. But Fedora/RH installs leave lines such

as these in /etc/hosts:

127.0.0.1 myhost.mydomain.com myhost localhost.localdomain localhost

This causes MySQL to reject users coming from 127.0.0.1 as users from

myhost.mydomain.com. You can read more details at:

http://bugs.mysql.com/bug.php?id=11822

服务器IP 完整域名 主机名称(hostname命令显示的)

vi /etc/hosts

138.68.243.239 mail.example.com mail.example.com

NTP

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

yum install ntp

systemctl start ntpd

systemctl enable ntpd

安装依赖包 wiki

从Zimbra Collaboration 8.7开始,Zimbra依赖于自己的存储库打包系统,这意味着Zimbra安装脚本会自动处理操作系统的依赖关系。

安装及使用

wget https://files.zimbra.com/downloads/8.7.5\_GA/zcs-8.7.5\_GA\_1764.RHEL7\_64.20170314032533.tgz

tar zxvf zcs–8.7.5_GA_1764.RHEL7_64.20170314032533.tgz

cd zcs–8.7.5_GA_1764.RHEL7_64.20170314032533

# ./install.sh

./install.sh —platform–override

安装出错可行一次:/opt/zimbra/libexec/zmsetup.pl 日志分析,不行就卸载重装了./install.sh -u

安装过程就不一一列出来了,能y的设置y,跳到菜单的时候选7、选4设置管理员密码,r返回,a

查看占用空间:du -sh /opt/zimbra/

切换到zimbra用户:su - zimbra

查看运行状态:zmcontrol status

重启服务:zmcontrol restart

web管理界面:https://mail.example.com:7071/

web用户界面:https://mail.example.com:7073/

添加新域名 example.com

简单的收发邮件:example.com 设置@的MX记录到mail.example.com

SPF,DKIM,DMARC wiki spam

SPF

什么是SPF? (Sender Policy Framework) 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案。 接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。

example.com 设置@的SPF和txt记录:v=spf1 mx ~all(允许当前域名的mx记录对应的IP地址)

DKIM

Bug:

ZCS 8.7.x 已知问题 BUG zmdkimkeyutil 生成非有效的2048位DKIM

解决:/opt/zimbra/libexec/zmdkimkeyutil 修改所有2048关键字为1024

》升级DKIM签名:/opt/zimbra/libexec/zmdkimkeyutil -u -d example.com

》更改DNS设置

命令生成2048位DKIM:/opt/zimbra/libexec/zmdkimkeyutil -a -b 2048 -d example.com

DKIM是利用加密签名和验证的原理,发件人在发送邮件时候,将与域名相关的加密签名插入邮件,收件人收到邮件后就可以对签名进行验证,判断发件人地址的真实性。

  • 添加DKIM /opt/zimbra/libexec/zmdkimkeyutil -a -d example.com
  • 升级DKIM /opt/zimbra/libexec/zmdkimkeyutil -u -d example.com
  • 删除DKIM /opt/zimbra/libexec/zmdkimkeyutil -r -d example.com
  • 查看DKIM /opt/zimbra/libexec/zmdkimkeyutil -q -d example.com

生成1024位的DKIM 内容为

DKIM Data added to LDAP for domain example.com with selector E298BEBE–2D5A–11E7–9E70–F55E985B5BE7

Public signature to enter into DNS:

E298BEBE–2D5A–11E7–9E70–F55E985B5B17._domainkey IN TXT ( “v=DKIM1; k=rsa; “

“p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5Lkk2XnUgA9LoHWYgDb1URxyTnab0WuHA9CKUFtLWrjV6S87bcpzoVa3

DMARC

[DMARC]协议的主要目的是识别并拦截钓鱼邮件

DNS记录 名称:_dmarc  值:v=DMARC1; p=none

域名解析记录

类型:txt

DNS名称:E298BEBE-2D5A-11E7-9E70-F55E985B5B17._domainkey

值:”v=DKIM1; k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5Lkk2XnUgA9LoHWYgDb1URxyTnab0WuHA9CKUFtLWrjV6S87bcpzoVa3fGVc/jChVfu5E4ZTif/jNkBPeow7wnwajEpFo8G/yR0e8aNwDghW8DYf9B21QPAtB9NqoNjoUSD1tDsTXor2tSqf8wormbVhN3Y9aWkAxMEUP594zUwIDAQAB”

验证DKIM

验证公钥是否与私钥匹配 测试通过没有任何信息返回,否则返回record not found

/opt/zimbra/common/sbin/opendkim-testkey -d example.com -s E298BEBE-2D5A-11E7-9E70-F55E985B5B17 -x /opt/zimbra/conf/opendkim.conf

重新签发证书

zimbra的证书有效期为365天,为了避免下次的麻烦,可以重新签发一个证书,有效期20年。

/opt/zimbra/bin/zmcertmgr createca –new

/opt/zimbra/bin/zmcertmgr deployca

/opt/zimbra/bin/zmcertmgr createcrt –new –days 7300

/opt/zimbra/bin/zmcertmgr deploycrt self

/opt/zimbra/bin/zmcertmgr viewdeployedcrt

可以学习的内容

dnsmasq

named

小工具

https://intodns.com/one.one DNS检查

http://www.mail-tester.com/ 邮件评分

https://dmarcian.com/dmarc-inspector/mgtgxp.pw dmarc测试

参考文章

https://www.renfei.org/blog/introduction-to-spf.html

http://170182.blog.51cto.com/160182/1272569

https://www.mawenbao.com/research/email-spf-and-exim4-dkim-dmarc-config.html

http://imzhen.com/note/2015/08/09/20150809/

CentOS 7 安装配置Zimbra邮件服务器

https://www.chenxie.net/archives/1476.html

http://www.bkjia.com/Linux/1112319.html

https://bbotte.com/server-config/zimbra-configuration-mail-service-full-record/

Zimbra8 安装说明

http://blog.csdn.net/zzban/article/details/8640510

https://www.kenceng-solusindo.net/read/intalasi-zimbra-mail-server-ubuntu-16-04/

http://record.blog.51cto.com/3300006/1206745

https://www.chenxie.net/archives/1476.html

http://www.linuxyw.com/linux/qitafuwu/20130605/540.html

http://m.blog.chinaunix.net/uid-31075838-id-5698408.html

结果谷歌一系列的查找资料,最后还是到了hetzner的wiki找到了解决办法。

1.proxmox桥接网卡配置:

# /etc/network/interfaces
### Hetzner Online GmbH - installimage
# Loopback device:
auto lo
iface lo inet loopback
#
# device: eth0
auto eth0
iface eth0 inet static
address


netmask 255.255.255.255
pointopoint
gateway
#
iface eth0 inet6 static
address
#eg: 2001:db8::2
netmask 128
gateway fe80::1
up sysctl -p
# for single IPs
auto vmbr0
iface vmbr0 inet static
address 10.0.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
#
iface vmbr0 inet6 static
address
#eg: 2001:db8::2
netmask 64

关于Nat链接网络请使用iptables实现。

2.solusvm下网卡配置:

主网卡中默认配置请不要修改,仅需将IPV6ADDR的/64换为/128 例如:IPV6ADDR= 2001:db8::2/128 然后将桥接网卡更改为:

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.1.1
NETMASK=255.255.255.0
IPV6ADDR=2001:db8::2/64

关于联网与端口映射请使用iptables

3.关于虚拟机(kvm)的配置:

这里拿2001:db8::此ipv6做示范 Debian or Ubuntu:

iface eth0 inet6 static
address 2001:db8::f001
netmask 64
gateway 2001:db8::2

Centos:

IPV6INIT=yes
IPV6ADDR=2001:db8::f001/64
IPV6_DEFAULTGW=2001:db8::2

查看IPIP模块:

modinfo ipip

开始建立隧道:

注:这里设置A主机的公网IP为1.1.1.1,B主机的公网IP为2.2.2.2

A主机操作:

ip tunnel add ipip-tunnel mode ipip remote 2.2.2.2 local 1.1.1.1 ifconfig ipip-tunnel 10.0.1.1 netmask 255.255.255.0

B主机操作:

ip tunnel add ipip-tunnel mode ipip remote 1.1.1.1 local 2.2.2.2 ifconfig ipip-tunnel 10.0.1.2 netmask 255.255.255.0

然后这时候就可以在B主机上pingA主机设置的内网IP10.0.1.1看是否想通,如果同的话就代表成功打通。

此外介绍一种直接使用网卡配置文件(CentOS系统)的方法:

A主机(/etc/sysconfig/network-scripts/ifcfg-ipip-tunnel)

DEVICE=ipip-tunnel
ONBOOT=yes
TYPE=IPIP
TTL=255
PEER_OUTER_IPADDR=2.2.2.2
PEER_INNER_IPADDR=10.0.1.2
MY_OUTER_IPADDR=1.1.1.1
MY_INNER_IPADDR=10.0.1.1

B主机(/etc/sysconfig/network-scripts/ifcfg-ipip-tunnel)

DEVICE=ipip-tunnel
ONBOOT=yes
TYPE=IPIP
TTL=255
PEER_OUTER_IPADDR=1.1.1.1
PEER_INNER_IPADDR=10.0.1.1
MY_OUTER_IPADDR=2.2.2.2
MY_INNER_IPADDR=10.0.1.2

然后启动网卡即可