0%

Mailcow是一个可以用Docker部署的邮件服务器,安装部署都比较简单,稍微搞下就能用。。。至于发的邮件进不进垃圾箱,看造化了。。。

本文将带领你使用Mailcow部署一个完全符合国际标准的邮件服务器,首先别急着部署,我们先要按照标准来设置域名解析。

1.rDNS,就是反向解析,这个功能只能看你的VPS或是服务器商家支不支持了,建议搭建邮件服务器的时候选择支持rDNS的机器,非必须要求,只是设置了rDNS后可以让你的邮件更加容易进入对方的收件箱而不是垃圾箱。

下面我以Linode为例,在这里可以设置rDNS:

假设你的邮件服务器域名是mail.example.com,那么在下面填入即可:

2.A记录,我以cloudflare的DNS解析界面做示范,那么现在就添加一个mail的A记录解析到你的服务器IP:

3.MX记录,这里假设你的域名是example.com,那么MX记录NAME这里就是@,Value就是mail.example.com:

4.两个CNAME记录,这是Mailcow部署所需要的。NAME分别是autoconfig/autodiscover,Value是mail.example.com:

5.两个TXT记录,这里分别指的是SPF和DMARC,都是增强邮箱安全性的,并且解析设置相对简单,建议都设置一下。我们先来设置SPF,新建一个TXT记录,NAME指向你的根域名,假设你的根域名是example.com,那么NAME就是example.com,Value填写如下所示内容:

v=spf1 mx ~all

如下图所示:

接着是DMARC,还是一样新建一个TXT记录,NAME填写_dmarc,Value填写:

“v=DMARC1; p=reject; rua=mailto:mailauth-reports@example.com

其中“mailauth-reports@example.com”修改成一个你可以正常接收邮件的地址。

如下图所示:

6.DKIM记录,这其实也是一条TXT记录,并且也是增强邮箱安全性的,但是现在我们还无法配置,因为不知道具体的解析值是多少,这个要等Mailcow部署好了后才能设置。

所以,现在DNS解析这一块我们可以告一段落了,现在登到VPS内设置时间,VPS系统我选择使用CentOS7X64

先设置同步时间:

yum -y install chrony
systemctl start chronyd
systemctl enable chronyd

然后把NTP也开启了:

timedatectl set-ntp true

国外机器时区一般都不是东八区,我们把系统的本地时区改成东八区:

timedatectl set-timezone Asia/Shanghai

最后查看一下系统时间是否正常:

timedatectl status

如果一切正常,你应该可以看到类似如下图所示的内容:

其中Universal time是世界时间,这个不用管,RTC time是主板时间,也不用管,只要保证Local time即本地时间是正确,并且是东八区即可。

现在我们安装Docker:

yum -y install https://download.docker.com/linux/centos/7/x86\_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86\_64.rpm systemctl start docker
systemctl enable docker.service

再安装docker-compose:

curl -L “https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

然后拉取mailcow项目文件:

yum -y install git
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized

执行sh脚本:

./generate_config.sh

这个脚本会让你填写一个域名,这个域名就是我们之前A记录解析的域名,按我们之前说的,那这里我的域名地址应该是:mail.example.com

完成之后拉取镜像:

docker-compose pull

确保全部都是done状态:

运行mailcow:

docker-compose up -d

如果如下图所示,那么你的mailcow就运行成功了:

打开域名mail.example.com,你应该可以看到登录界面:

默认的管理员账号是admin,密码是moohoo

登录进去之后第一件事是修改管理员密码,接着要来添加域名,点击右上角的“Configuration”-“Mailboxes”可以看到如下界面:

添加域名这个Domain填写你的根域名,其他的就按需要配置就行了,填写好了后点击“Add domain and restart SOGo”:

现在我们回到之前的DNS解析这块,之前说过还有一个DKIM解析没设置,这里我们点击“Configuration”-“Administration”,然后选择“Configuration”,然后按如下图设置:

1.Domaion/s填写我们的根域名,我这里假设就是example.com

2.DKIM key length (bits)选择1024bits。

完成之后你将得到一个解析值:

回到cloudflare的DNS解析界面,添加一个TXT记录,NAME填写:

dkim._domainkey

值就是上图的这一串,复制粘贴就行了,如图所示:

现在我们就可以回到mailcow创建邮箱账号了,点击“Mailboxes”-“Add mailbox”开始创建你的邮箱账号:

Domain选择我们之前刚添加的域名,其他这些就按需填写即可:

完成之后我们可以在右上角打开SOGo这个APP,这个就是mailcow的邮件系统:

登录界面长这样,可以设置中文:

使用我们创建的邮箱账号登录,注意账号是邮件地址的全名,比如这样:test@example.com

测试发信:

Mail-Tester测试了一下,还行吧8.1分:

我就TM一直纳闷这个PYZOR是个啥J8玩意:

当然这些都只是测试并不代表实际使用效果,那么Mailcow实际发送邮件的效果如何?

答曰:稀烂!

发QQ邮箱进垃圾箱,发Gmail进垃圾箱,发什么都进垃圾箱,玩你妹啊!rDNS/SPF/DMARC/DKIM都配置了还是如此,我也不知道该怎么办了,反正我个人觉得这款邮件系统发信进收件箱的几率太低了。。。

另外这个SOGo的界面说实话,有点华而不实,看上去挺好看的UI,实际用起来感觉难用到爆炸,算了,不想BB了,告辞~

目前仅支持CentOS系统,主要解决之前BT/磁力无法下载的问题,同时将YAAW替换为AriaNg,管理更加方便,以下简称CCAA

主要功能

  • 支持HTTP/HTTPS/FTP/BT/磁力链接等离线下载,断点续传等
  • 文件管理、视频在线播放

安装CCAA

复制下面的命令,一行一个:

1
2
3
yum -y install wget unzip curl
wget https://github.com/helloxz/ccaa/archive/master.zip
unzip master.zip && cd ccaa-master && sh ccaa.sh

输入1安装CCAA

根据提示设置下载路径、RPC密钥、用户名、密码,稍后需要用到。

安装完成后会看到如下提示,请务必牢记RPC密钥、用户名、密码等信息。

根据提示输入http://IP:6080/打开AriaNg界面,并输入上一个步骤中设置的Caddy用户名和密码。

打开AriaNg设置 – RPC ,填写Aria2 RPC 密钥,然后刷新页面,至此已经完成,可以愉快的开始下片啦。

文件管理

点击右上角文件管理按钮会跳转到Caddy filemanager进行文件管理,或者手动输入地址http://IP:6080/admin也可以进入Caddy filemanager

常用命令

1
2
3
4
5
6
7
8
#查看ccaa状态
ccaa status
#启动ccaa
ccaa start
#停止ccaa
ccaa stop
#重启ccaa
ccaa restart

注意事项

  • 如果服务器有启用安全组,请务必在安全组放行以下端口:6080/6800/6998/51413
  • 大部分服务商是禁止下载BT的,若因违规使用导致服务器被封本人不承担任何责任

其它说明

支持系统:Debian 8 (建议选择mini版) 一、脚本特性

小内存VPS 一键安装 Caddy+PHP7+Sqlite3 环境 (支持VPS最小内存64M) 一键绑定域名自动生成SSL证书开启https(ssl自动续期)、支持IPv6 一键安装 typecho、wordpress、zblog、kodexplorer、一键整站备份 一键安装 v2ray、rinetdbbr

二、安装步骤

1、解析好域名 2、SSH下,根据自己的需求安装不同应用。 a、仅安装Caddy+PHP7+Sqlite3 环境

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh

b、一键安装 typecho

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh -t

c、一键安装 wordpress

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh -w

d、一键安装 zblog

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh -z

e、一键安装 kodexplorer 可道云

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh -k

f、一键安装 laverna 印象笔记

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh -l

三、辅助功能

1、一键整站备份(一键打包/www目录 含数据库)

1
bash c.sh -a

2、一键安装 v2ray

1
bash c.sh -v

3、一键安装 rinetd bbr 端口加速

1
bash c.sh -b

四、应用卸载 卸载 caddy

1
bash c.sh -unc

卸载 php+sqlite

1
bash c.sh -unp

卸载 v2ray

1
bash c.sh -unv

卸载 rinetdbbr

1
bash c.sh -unb

源码地址https://github.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3

在 linux 下传输文件我们平时一般使用 lrzsz 或者 scp. 但是并不是所有终端都支持 lrzsz, 额外安装 winscp 也麻烦 . 况且如果是需要把文件发给别人更是麻烦 .

transfer.sh 就是为此而生 . 对于恨不得手都不离开键盘的程序员来说 , 能有个命令行的分享程序真的挺方便的 .

transfer.sh 的使用也非常简单 , 可以使用 curl 的 upload-file 来上传文件 . 比如 :

1

curl --upload-file ./91yunserverspeeder.tar.gz https://transfer.sh/91ss.tar.gz

以上命令就是把 91yunserverspeeder.tar.gz 上传到 transfer.sh, 并命名为 91ss.tar.gz

执行完这个命令 , 就会返回给你下载地址 :https://transfer.sh/Jg56i/91ss.tar.gz

然后你把这个地址发给别人就可以下载了 .

是不是很方便呢 ?

transfer.sh 还有很多方式 , 比如加密上传文件 , 比如一次性上传多个文件等用法 . 大家可以到官网看例子 .

并且这也是开源项目 , 大家可以到他的 github 观摩 , 也可以自己搭建相类似的服务 .

官网 :

https://transfer.sh/

github:

https://github.com/dutchcoders/transfer.sh/

很久没更新了,最近闲下来,分享一下我是如何在 CentOS7 下快速部署 SS 的教程吧。

整套下来一般在 5 分钟之内即可部署完毕。

一、更新 CentOS7 到最新版并同步时间

更新 CentOS7 到最新

yum install epel-release -y
yum update -y
yum install bind-utils net-tools wget ntp -y

同步时间

timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp yes
timedatectl

重启系统

systemctl reboot

二、CentOS7 强制安装支持锐速的最新内核,并永久指定使用该内核启动系统

强制更新内核到:kernel-3.10.0-327.36.3.el7.x86_64

rpm -ivh http://vault.centos.org/7.2.1511/updates/x86\_64/Packages/kernel-3.10.0-327.36.3.el7.x86\_64.rpm –force

永久指定使用该内核启动

grub2-set-default “CentOS Linux (3.10.0-327.36.3.el7.x86_64) 7 (Core)”

检查指定内核是否生效

grub2-editenv list

重启系统

systemctl reboot

再次检查当前运行的内核

uname -r

三、安装锐速

wget -N –no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder-v.sh && bash serverspeeder-v.sh CentOS 7.2 3.10.0-327.el7.x86_64 x64 3.11.20.5 serverspeeder_72327

四、安装 SS

https://teddysun.com/342.html

建议采用 chacha20-ietf-poly1305 协议,该协议在路由器上可以达到更高的速度。

五、修改最大文件链接数 NOFILE 设置

修改该数值才可以让 SS 支持更多的端口,否则会导致重启机器后 SS 起不来。

打开 /etc/systemd/system.conf 文件,找到 #DefaultLimitNOFILE= 修改为如下:

DefaultLimitNOFILE=51200

六、安装 SS 自动重启监控

每五分钟检查一次 SS 是否在运行,如果不在运行则会自动重启

wget –no-check-certificate -O /opt/shadowsocks-crond.sh https://raw.githubusercontent.com/teddysun/shadowsocks\_install/master/shadowsocks-crond.sh
chmod 755 /opt/shadowsocks-crond.sh
(crontab -l ; echo “*/5 * * * * /opt/shadowsocks-crond.sh”) crontab -
crontab -l
service crond restart

七、Firewalld 防火墙配置

打开 /etc/firewalld/zones/public.xml 文件,使用开放相应的端口:

PublicFor use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.

重启 Firewalld 并查看端口配置是否生效

service firewalld restart
systemctl enable firewalld
firewall-cmd –zone=public –list-all

八、最终检查

检查锐速是否在运行

/serverspeeder/bin/serverSpeeder.sh status

检查 SS 是否在运行

参考上方刚刚的安装链接中的介绍

检查 SS 运行是否正常

参考上方刚刚的安装链接中的介绍

九、效果

本次教程使用的是 Vultr Seattle 节点进行的,以下测试结果基于全局模式。

更多 VPS 推荐

【强烈推荐】搬瓦工 CN2,查看测试结果

其他 VPS 推荐

gdnsd 是一款权威 DNS (Authoritative-only DNS)服务器软件,因为自带 GeoIP 插件,所以很适合自建 CDN 做分区解析,著名的喂鸡百科就是使用 gdnsd 进行全球 CDN 分区解析

众所周知,天朝的网络环境,国内访问国外慢,同理国外访问国内也慢,所以我们很有必要搭建 CDN 并且使用 DNS 进行分区解析

而国内比较知名的权威 DNS 服务商如 CloudXNSDNSpod 他们免费版的 DNS 服务器都在国内,这样会造成国外的用户解析你的域名很慢,同理,如果使用国外的权威 DNS 服务商如 CloudflareAWS Route53 他们的 DNS 服务器都部属在国外,国内访问基本要走美国节点,这样会造成国内的用户解析你的域名很慢

所以我们需要选择一家对国内外速度都友好的 ISP 来托管你的权威 DNS 服务器,如果您没有找到合适的,我们这里推荐 cat.net 以及阿里云国际版

以下安装步骤都在 root 用户下完成,请自行使用 su 命令切换到 root 用户

1、注册 DNS 服务器

假设您的 DNS 域名是 example.com ,购买并安装好了两台 NS 服务器,分别为

ns1.example.com 对应 IPv4 192.0.2.2 IPv6 2001:DB8::2
ns2.example.com 对应 IPv4 192.0.2.3 IPv6 2001:DB8::3

首先,您需要在您的域名注册商注册 Name Servers 由于每个注册商的控制面板不同,我们这里以 cat.net 为例,登陆 Custom Portal 后,点击 Domains > My Domains 如图

然后进入您的域名管理页面,点击小工具的箭头,如图

接着点击左侧的 Private Nameservers 如图

然后在右侧即可注册、管理或删除 NS 服务器,如图

我们分别注册 ns1 和 ns2 即可

PS: cat.net 后台只能一次提交注册一个 IP 地址,如果需要一个 NS 服务器对应多个 IP 地址,则只需要发服务单让客服帮忙修改即可

好了,到这里我们已经注册好 NS 服务器,接下来开始搭建 gdnsd

2、安装 gdnsd

Debian 9.x 自带的 gdnsd 已有编译好的版本,所以我们不需要编译安装,直接一条命令即可,同样适合 Debian 8.x

1
apt-get install gdnsd

如果加了 Backports 则可以使用

1
apt-get -t stretch-backports install gdnsd

Debian 8.x 则是

1
apt-get -t jessie-backports install gdnsd

记得检查系统或服务商的防火墙,我们需要打开的端口是 TCP / UDP 的 53 端口,请安装后检查服务商是否给您打开了这个端口,否则 DNS 是无法工作的

3、配置 gdnsd

gdnsd 的 Github Wiki 上已经提供了很详细的 config 以及 zonefile 配置,但是对新手来说坑比较多,由于我们的需求是根据国内外分区解析,所以这里我简单的提供一下本站的配置文件,感谢肥猫童鞋的细心指导

这里假设阁下的网站域名是 example.org 国内服务器节点 IPv4 为 192.0.2.4 IPv6 为 2001:DB8::4 国外服务器节点 IPv4 为 192.0.2.5 IPv6 为 2001:DB8::5

那我们的逻辑就是,当国内用户请求 example.org 解析的时候, gdnsd 判断用户本地的 DNS 是否在国内,是的话解析到国内对应的服务器节点,如果不是,则默认解析到国外服务器节点,能理解这个逻辑以后我们就开始配置吧

首先登陆 ns1.example.com

ssh root@ns1.example.com

gdnsd 需要有一个对应的 config 文件,需要自己创建,这里默认新建一个 /etc/gdnsd/config 文件,输入以下内容

options => {
listen => any
dns_port => 53
chaos_response => “SBDNS”
}

service_types => {
example_monitor => {
plugin => http_status
ok_codes => [200, 301, 302, 403, 404]
vhost => example.org
url_path => /
}
}

plugins => { geoip => {
maps => {
china_map => {
geoip_db => GeoLiteCity.dat
datacenters => [default-dc, cn-dc]
map => {
AS => {CN => [cn-dc, default-dc]}
}
}

}
resources => {

example\_org => {
  map => china\_map
  service\_types => example\_monitor
  dcmap => {

    cn-dc => {

addrs_v4 => 192.0.2.4
addrs_v6 => 2001:DB8::4
},

    default-dc => {

addrs_v4 => 192.0.2.5
addrs_v6 => 2001:DB8::5
},

  }
}

}

}

}

我们来一条一条解释

options => {
listen => any
dns_port => 53
chaos_response => “SBDNS”
}

options 是 gdnsd 的配置选项,一般无特殊需求的话可以监听本机的所有 IP ,所以这里 listen 选的是 any, DNS 服务器端口选默认的 53chaos_response 则是 DNS 返回的软件版本,可以自己随便指定个名字

service_types => {
example_monitor => {
plugin => http_status
ok_codes => [200, 301, 302, 403, 404]
vhost => example.org
url_path => /
}
}

这里因为我们开启了监控,并且使用的插件是 http_status ,如果不需要监控的话可以忽略

plugins => { geoip => {
maps => {
china_map => {
geoip_db => GeoLiteCity.dat
datacenters => [default-dc, cn-dc]
map => {
AS => {CN => [cn-dc, default-dc]}
}
}

}
resources => {

example\_org => {
  map => china\_map
  service\_types => example\_monitor
  dcmap => {

    cn-dc => {

addrs_v4 => 192.0.2.4
addrs_v6 => 2001:DB8::4
},

    default-dc => {

addrs_v4 => 192.0.2.5
addrs_v6 => 2001:DB8::5
},

  }
}

}

}

}

这一段才是最重要的,也是本文的精髓所在,这里我们启用了 GeoIP 插件,设置的默认解析到国外的节点,国内用户对应一个 datacenter 叫做 cn-dc ,只要 gdnsd 判断该用户是国内请求的解析,那么就返回我们设置的国内 IP ,否则就返回默认的国外节点,如果不需要 IPv4 则可以直接写

cn-dc => 192.0.2.4
default-dc => 192.0.2.5

更多的 GeoIP 配置信息可以在 Github Wiki 页面中找到

4、安装 GeoIP 数据库

我们的数据库使用的是 Maxmind 免费的 GeoLite City,大多数情况下也足够使用,下载和解压的命令如下

1
cd /etc/gdnsd/geoip && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz && gzip -df GeoLiteCity.dat.gz

5、配置 zonefile

首先,细心的读者肯定发现我们还没配置 DNS 域名 example.com 所以新建一个 /etc/gdnsd/zones/example.com 文件,举例如下

$TTL86400

@INSOA ns1.example.com.hostmaster.example.com.(
1 ; serial
7200 ; refresh
900 ; retry
1209600 ; expire
10800 ; ncache
)

@NSns1.example.com.
@NSns2.example.com.

ns1A192.0.2.2
ns2A 192.0.2.3

ns1 AAAA2001:DB8::2
ns2 AAAA2001:DB8::3

这里默认设置的 TTL 是 86400 也就是一天,可以根据需要修改

接着需要创建 /etc/gdnsd/zones/example.org 文件,举例如下

$TTL3600

@INSOA ns1.example.com.hostmaster.example.com.(
1 ; serial
7200 ; refresh
900 ; retry
1209600 ; expire
10800 ; ncache
)

@NSns1.example.com.
@NSns2.example.com.

@DYNAgeoip!example_org

wwwCNAMEexample.org.

6、检查 gdnsd 配置

一条命令即可

1
gdnsd checkconf

如果最后三行输出如下,即成功配置

1
2
3
# info: rfc1035: Loaded 71 zonefiles from '/etc/gdnsd/zones/'
# info: rfc1035: quiescence time is 3 seconds
# info: Configuration and zone data loads just fine

7、重启 gdnsd

如果修改了 config 文件,那么我们则需要重启 gdnsd 服务,如果之后只是修改 zonefile 那么则无需这个步骤

1
gdnsd restart

8、安装配置 ns2.example.com 并同步

由于 gdnsd 是个轻量级的 DNS 服务器,不带同步功能,所以您需要按照上面的步骤重新配置一次 ns2.example.com 并且让他重启生效,为了今后方便同步,我们可以使用 rsync 来进行

首先,在 ns1 和 ns2 都安装 rsync

1
apt-get install rsync

然后我们以 ns1 作为 master ,ns2 作为 slave ,每次修改 ns1 的文件并且自动同步到 ns2,以下命令均在 ns1 操作

生成 SSH Key

1
ssh-keygen -t ed25519

查看并复制公钥 id_ed25519.pub

1
cat ~/.ssh/id_ed25519.pub

把公钥的内容复制到 ns2 服务器的 ~/.ssh/authorized_keys 即可

然后执行同步

1
rsync -avz --delete /etc/gdnsd/ ns2.example.com:/etc/gdnsd/

也可以写入 bash 脚本,比如 sync.sh

1
2
CONFDIR=/etc/gdnsd
rsync -avz --delete $CONFDIR/ ns2.example.com:/etc/gdnsd/

赋予权限

1
chmod +x sync.sh

之后就可以直接执行脚本,不需要每次输入代码

1
./sync.sh

另外这里还有肥猫写的更新 GeoIP 数据库的脚本 geoip.sh

1
2
3
4
URL=http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
FILENAME=GeoLiteCity.dat.gz
DIR=/etc/gdnsd/geoip
cd $DIR; rm -f $FILENAME; wget $URL; gzip -df $FILENAME

9、修改域名 DNS 服务器

这个应该大多数读者会,直接去您的注册商把 example.com 和 example.org 的 DNS 服务器设置为 ns1.example.com 和 ns2.example.com 并耐心等待生效

10、测试生效

一般耐心等待一段时间(取决于您的旧 DNS 服务器 TTL 失效时间)后,我们自建的 gdnsd 已经生效,建议找一台国内的机器和国外的 Linux 机器来分别测试,Windows 下命令不好记,嘎嘎

首先安装必要的 DNS 工具

Debian / Ubuntu 下

1
apt-get install dnsutils

CentOS 下

1
yum install bind-utils

然后我们使用 dig 命令来检测

首先检测 NS 记录是否生效

1
2
3
root@debian ~ # dig NS example.com +short
ns1.example.com.
ns2.example.com.

检测 A 记录或 AAAA 记录是否生效

国内对应解析到 192.0.2.4 和 2001:DB8::4

1
2
3
4
root@china ~ # dig A example.com +short @223.5.5.5
192.0.2.4
root@china ~ # dig AAAA example.com +short @223.5.5.5
2001:DB8::4

国外对应解析到 192.0.2.5 和 2001:DB8::5

1
2
3
4
root@australia ~ # dig A example.com +short @8.8.8.8
192.0.2.5
root@australia ~ # dig AAAA example.com +short @8.8.8.8
2001:DB8::5

更多节点检测的话可以去 ping.chinaz.com 或 just-ping.com 查看全国以及全世界各地的解析情况

检测 DNS 是否生效的话可以使用 IntoDNS

如有疑问欢迎在下方留言,之后会详细介绍如何使阁下搭建的 gdnsd 服务完美符合 DNS RFC 标准

如果您一直观注 Ubuntu 系统性能,可能已经注意到,系统会随着使用时间的推移而逐渐变慢。这本身也不算是什么严重问题,无论你使用 Windows、Linux 或是 macOS 系统,也都是如此。

本文中系统极客将向大家汇总 10 个简单步骤,完成这些任务您的 Ubuntu 机器就可以再次以最佳速度运行,并为您提供所需的高效系统性能。

1.限制「启动应用程序」

很多随 Ubuntu 系统自动启动的应用程序其实都没有太大的必要,反而会拖慢系统的启动和登录时间。您可以搜索「启动应用程序」来管理「启动应用程序首选项」。

2.减少Grub加载时间

当您的 Ubuntu 系统启动时,会显示一个加载选项,让您可以进入双系统启动或进入恢复模式。这个 Grub 加载选单默认会等待 10 秒种才能通过或需要用户手动按「回车」键才能跳过。

其实,我们可以将 Grub 等待时间设置到 10 秒以下来让机器启动更快,例如可以通过以下命令来将GRUB_TIMEOUT=10改成GRUB_TIMEOUT=2,这样就只需等待 2 秒:

  1. sudo gedit /etc/default/grub
  2. sudo update-grub

将 GRUB 等待超时设置得过短将无法选择要引导的(多个)操作系统。

3. 用TLP降低发热

TLP 是一个有助于「系统冷却」的应用程序,可以让 Ubuntu 运行得更快、更顺畅。安装完成后,运行命令启动它即可,而无需任何配置。

1
2
3
4
sudo add-apt-repository ppa:linrunner/tlp
sudo apt update
sudo apt install tlp tlp-rdw
sudo tlp start

您还可以使用 TLP 延长 Ubuntu 笔记本电池续航时间

4. 设置软件更新镜像

无论您的网速是否畅快,确保 Ubuntu 从最佳服务器获取更新始终是一个好习惯。

您可以搜索打开「软件和更新」——选择「Ubuntu 软件」选项卡——在「下载自…」中选择一个最适合您的软件源。

国内用户建议选择「阿里云(Aliyun)」或「中国科学技术大学(USTC)」的更新源镜像。

5.使用apt-fast取代apt-get

如果您是 Ubuntu 系统的老鸟用户,应该经常使用apt-get命令。如果您希望下载速度更快,可以安装apt-fast并在使用apt-get命令的地方用apt-fast来替换。

1
2
3
sudo add-apt-repository ppa:apt-fast/stable
sudo apt-get update
sudo apt-get install apt-fast

Linux 中 apt 与 apt-get 命令的区别与解释

6.清理Ubuntu

在 Ubuntu 安装之后的带个生命周期中,您一定安装和卸载过很多应用程序。这些使用过的软件都会在系统中留下缓存、应用程序依赖和历史索引等等,积累过多就会限制 Ubuntu 计算机的性能。

考虑到这一点,保持您的 PC 清洁就是管理员的一项重要职责。如果您想以最快速、最简单的方式来清理 Ubuntu,可以执行如下两条命令:

  1. sudo apt clean
  2. sudo apt autoremove

7. 启用专有驱动程序

在 Ubuntu 系统中为特殊硬件安装和启用专有驱动程序可以大大提高 Ubuntu 计算机的性能,您可以搜索打开「软件和更新」——在「附加驱动」选项卡中为显卡等硬件启用专有驱动程序。

通过 PPA 为 Ubuntu 安装 Nvidia 驱动

8.安装Preload

Preload(预加载)会在后台工作,以「研究」您如何使用计算机并增强计算机的应用程序处理能力。安装好 Preload 后,您使用频率最高的应用程序的加载速度就会明显快于不经常使用的应用程序。

sudo apt install preload

9.使用轻量级的桌面环境

Ubuntu 系统可以与许多 DE(桌面环境)兼容,让桌面拥有不同的风格来吸引各种用户。目前可以让您 Ubuntu 性能显着提升的轻量级桌面环境就有 Xfce 和 LXDE。

7 款应用最广泛的 Linux 桌面环境盘点

10. 移除Apt-Get的翻译包

如果你在sudo apt-get update之后仔细观注过「终端」输出,定然会在其中发现一些与语言翻译有关的行。如果您在服务器上只使用英文,就无需翻译包数据库了。

sudo gedit /etc/apt/apt.conf.d/00aptitude

将这行代码附加到文件末尾:

Acquire::Languages “none”;

这段时间,有一些人看着我的逗比云觉得好看,同时觉得 简介说明 的功能很好,想要问我怎么做,所以我干脆开源好了。

魔改特点:

我之所以使用Directory Lister,就是因为这个程序非常的简洁,符合我心中对 目录列表程序的定义,在使用期间,根据我个人喜好和审美做了一些改变。

  1. 界面式样魔改
  2. 支持中文目录和文件名
  3. 支持显示各文件夹内的简介说明
  4. 默认调用的各种 CDN文件本地化
  5. 等等 …

Github 项目地址:https://github.com/ToyoDAdoubi/DirectoryLister

更新:2018/08/20,更新 不需要再手动配置域名后缀了,新版本会自动检测。

更新:2018/08/20,更新 网站式样 - 素色简洁风(对比见下图)。

更新:2018/07/18,修复 当程序位置网站子目录下时,CSS JS 路径错误的问题。

更新:2018/03/26,修复 当前文件夹下无 README.html 文件时,PHP会提示警告的问题。

演示示例:

逗比云

下载安装:

下载后,解压并上传到已经搭建好 PHP环境 的服务器中,然后就可以上传文件和创建文件夹了!

Github打包:https://github.com/ToyoDAdoubi/DirectoryLister/archive/master.zip

逗比云 打包:https://softs.loan/Website/Directory%20Lister%E9%AD%94%E6%94%B9%E7%89%88%28by-Toyo%29%20v2.6.1.zip

文件结构

假设你的虚拟主机根目录是 /home/wwwroot/xxx.xx

  1. /home/wwwroot/xxx.xx/
  2. ├─ resources/
  3. │ ├ themes/
  4. │ │ └ bootstrap/
  5. │ │ ├ css/
  6. │ │ ├ fonts/
  7. │ │ ├ img/
  8. │ │ ├ js/
  9. │ │ ├ default_footer.php # 底部公共文件 #
  10. │ │ ├ default_header.php # 顶部公共文件(可以放网站流量统计代码) #
  11. │ │ └ index.php # 网页主文件,其中可以修改顶部公告栏内容 #
  12. │ │
  13. │ ├ DirectoryLister.php
  14. │ ├ config.php
  15. │ └ fileTypes.php
  16. ├ README.html # 该文件夹页面内的 说明简介文件 #
  17. ├ index.php
  18. ├─ 其他文件夹/
  19. │ ├ 其他文件.txt
  20. │ └ README.html # 该文件夹页面内的 说明简介文件 #
  21. └ 其他文件.txt

注意事项:

不显示文件和目录

如果安装 lnmp一键包上传Directory Lister后,Directory Lister不显示文件和目录,那么可能是 PHP函数scandir被禁用了,取消禁用即可。

  1. sed -i ‘s/,scandir//g’ /usr/local/php/etc/php.ini
  2. # 取消scandir函数禁用
  3. /etc/init.d/php-fpm restart
  4. # 重启 PHP生效

简介功能说明

我也不知道该给这个功能起什么名字,好捉急偶。

可以在每个文件夹下面放一个README.html文件,这个文件里写着 简介说明内容即可,格式参考自带的示例文件。

为了避免中文乱码,把README.html文件用 UTF-8 无BOM 编码 保存!

文件修改说明

文件修改说明修改网站中头部导航标题,去这个文件里搜索DOUBI Soft然后全部替换为自己要改的。\resources\DirectoryLister.php

修改网站标签栏的标题,去这个文件里把开头<title>标签中的DOUBI Soft替换为自己要改的。\resources\themes\bootstrap\index.php

修改网站顶部公告栏内容,去这个文件里搜索顶部公告栏

\resources\themes\bootstrap\index.php

网站头部公共文件:

\resources\themes\bootstrap\default_header.php

网站底部公共文件:

\resources\themes\bootstrap\default_footer.php

如果想要插入流量统计代码,那只需要把代码写到default_header.php文件内即可。


本程序基于 Directory Lister原版修改:http://www.directorylister.com/

转载请超链接注明:逗比根据地 » 『开源』Directory Lister 逗比魔改版 Github开源(逗比云)

责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

说明:之前博主发过一个雨落大神写的Ping值监测工具uPing,不过有点单一,也缺少Web界面,今天再分享个SmartPing工具,可以同时Ping多个IP,支持正向Ping绘制,反向Ping绘制,互Ping拓扑绘制及报警功能。支持自定义延迟、丢包阈值报警。

截图

安装

Github地址:https://github.com/gy-games/smartping

运行命令:

1
2
3
4
5
mkdir smartping && cd smartping
#请去https://github.com/gy-games/smartping/releases下载最新版本的smartping
wget https://github.com/gy-games/smartping/releases/download/v0.5.0/smartping-v0.5.0.tar.gz
tar zxvf smartping-v0.5.0.tar.gz
./control start

然后可以使用ip:8899打开Web界面查看了,管理界面默认密码为smartping,若需要修改请修改conf/config.jsonconf/config-base.json

1
2
3
4
5
6
7
8
9
#如果你是CentOS系统,且打不开Web页面的,则需要开启防火墙端口
#Centos 6系统
iptables -I INPUT -p tcp --dport 8899 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7系统
firewall-cmd --zone=public --add-port=8899/tcp --permanent
firewall-cmd --reload

相关命令

1
2
./control buildrunstartstoprestartstatus

总结

一般我们可以在搭建网站的服务器上安装,然后添加全国各个地区的IP进行监测,如果你找不到很全的IP来源,可以去ipip上找,地址:https://tools.ipip.net/ping.php,先进去ping一下,然后可以看到各个地区的IP地址了,之后就可以很清楚看到网络情况了。

本文全文转载自:https://tech.cxthhhhh.com/linux/2018/08/08/original-one-click-installation-of-desktop-environment-rdp-windows-support-for-linux-cn.html

帖子:https://www.hostloc.com/thread-467096-1-1.html

如有任何冒犯或侵权,请联系本人TG:@copyylws

在一些时候下,我们需要安装简单快速的桌面环境并且通过RDP访问。

例如:运行浏览器,或者一些Linux应用程序,甚至一些Windows应用程序。

现在,你有了一个更好的解决方案,只需一键,就可以快速的帮你安装好桌面环境和远程桌面连接以及Windows支持。如果你正在寻找这样的解决方案,就来试试吧。

#脚本# CentOS 7 一键安装桌面环境(可远程RDP连接)-主机博客

我将使用CentOS7来演示如何操作。

使用要求

  • 最低硬件要求:CPU核心≥1核心,内存≥1 GB,磁盘空间≥15 GB
  • 系统为全新CentOS 7 最小化安装版本
  • 请尽量不要使用 OpenVZ 虚拟化的机器运行此脚本

脚本功能

  1. 只需一键,即可为CentOS安装桌面环境和RDP远程桌面连接。
  2. 为您的Linux系统运行Windows应用程序。脚本自动帮你安装Wine X64和X86,现在可以在Linux上运行Windows应用程序。例如:Telegram、WeChat、Thunder
  3. 默认创建3GB交换内存。 避免内存不足导致的错误。(交换位置:/var/swapd)
  4. 自动安装中文输入环境,中文支持。
  5. 安装人们推荐的软件,例如浏览器和输入法。(包含Chrome,Firefox)
  6. 安装远程桌面客户端。(支持RDP/SSH/NX/SFTP/VNC/XDMCP协议)

使用教程

请仔细阅读上述详情后,使用Root用户运行如下脚本:

1

yum install curl ca-certificates -y && curl -sSL https://raw.githubusercontent.com/MeowLove/CentOS\-One\-click\-Installation\-of\-Desktop\-Environment\-and\-Remote\-Desktop\-Connection\-RDP/master/download/main/install.sh sudo bash

完成后。你就可以连接IP:3389(通过远程桌面连接)。默认RDP登陆账号:root,密码:你的root密码

其他说明

  • 创建新用户时,请授权新用户RDP远程连接。 你需要这样做。(我将演示授权新用户CXT)
    • ① 首先你应该在[控制中心]-[用户和组群]创建新用户。
    • ② 使用root用户切换进入到CXT的目录。 cd /home/CXT
    • ③ 输入下面的命令(你需要注意,下面命令中引号是”英文状态单引号”。) touch ./.Xclients echo 'mate-session' > ./.Xclients chmod a+x ./.Xclients
  • Chrome浏览器不能通过root用户运行。如果您需要运行,请新建账户。(或者附加运行命令 --no-sandbox)
  • 一些Windows应用程序不工作,也许需要您关闭SELinux。(不推荐,一般情况下不需要)
  • 一些Windows软件看起来模糊,你需要调整软件后面的背景颜色为暗色调。(例如更换壁纸为深色壁纸)
  • 当前的默认系统语言是中文。如果您是英语用户,请执行 sudo localectl set-locale LANG = en_US.UTF-8