Ubuntu 14.04 Shadowsocks 安装配置与自启动

这种教程写的人挺多,配置起来也挺简单的。

不过我这种懒人怕忘记,就随便记一记。

apt-get update

apt-get install python-pip

pip install shadowsocks

或者这样安装:

wget https://pypi.python.org/packages/source/s/shadowsocks/shadowsocks-2.8.2.tar.gz

tar zxvf shadowsocks-2.8.2.tar.gz

cd shadowsocks-2.8.2

python setup.py install

(需要先运行apt-get install python-setuptools -y)

哒哒,装好了。

vi /etc/rc.local

screen -dmS ss /usr/local/bin/ssserver -p 12345 -k password -m rd4-md5

reboot

 

All done.

 

discuz防止游客查看个人资料的解决方式

转载自http://www.discuz.net/forum.php?mod=viewthread&tid=3226528

1.进入文件夹 ./source/include/space/ 打开space_profile.php 
2.在该文件第21行下,添加以下代码:


if(in_array($_G['groupid'], array(1))) {}
else {
showmessage('对不起,您无权进行此操作');
}


其中array(1)中的"1"是管理员组的代码,若要允许其他用户组查看会员资料,
可以在后面添加相应用户组的代码。这样可以有效解决用户隐私暴露的问题。

实战Discuz X3.2与Ucenter开启SSL,并且使用CloudFlare CDN加速

 

一,部署本地SSL

之前写过部署单站点的SSL方法,所以需要部署的进去看看即可。

我个人选了强行加密的Mode,需不需要站长可以自己考虑。

部署SSL的方法:点我进入

二,调教DZ

Discuz X3.2本身已经可以支持大部分的HTTPS通信了,所以这一块就不多说。当然有那么些未加密内容我也是没辙的,想绿绿的就得自己想办法动动手了^_^。

但是由于辣鸡Ucenter不支持HTTPS方式通信,在conf文件里rewrite会导致通信失败,所以我想了个另类的小学生办法来解决这个问题:

1,在该站点添加一个ServerAlias,域名就设定为ucenter.example.com;

2,修改服务器上的hosts文件,解析到Ucenter服务器的地址;

3,在Ucenter后台-应用管理里,将通信地址修改为ucenter.example.com

4,刷新一下就可以了

这样该rewrite的地址照样rewrite,不能rewrite的Ucenter也解决了,接下来就是愉快的玩耍了。还有其他问题?那等我碰到再说吧。

三,部署Cloudflare

本来想偷懒,通过Cloudflare的Flexible来实现SSL(也就是上面的步骤统统不搞^_^)

但折腾过程中发现,会发生各种问题,没法正常工作。

所以只能在服务器本地部署SSL,并且在Clouflare上设定为Strict Mode.

Let’s Encrypt 配置过程

Let’s Encrypt——简易,好用,免费,且受大量互联网公司支持的SSL证书颁发工具,除了本身免费之外,还受到绝大多数主流浏览器厂商的支持,关键是部署也极其方便,简直要爽翻天啦!

不过年纪大了记性不好,总会忘记过程到底是啥样的,所以还是写个文档记录一下。

当然走过路过的朋友也可以参考一下啊,毕竟我的记录最详实也最简单易懂啦。

我的环境是Ubuntu 14.04 LTS,Web服务器是Apache,所以CentOS跟Nginx的朋友们可以先绕道啦!

首先,按照惯例,先apt-get update一下。

假设各位的LAMP环境已经配置好,并且也配置好了各个网站的conf文件,接下来需要的组件可能只是git了。(当然,大部分人也应该会装上git的)

apt-get install git

OK,git装完了,接下来就是安装Let’s Encrypt了。我这里为了方便管理,就把Let’s Encrypt安装到/opt目录下。当然,如果想配置我下面提到的证书自动续期,也是需要安装在这个目录下的。所以键入以下指令:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

OK,这就在/opt目录下下载好我们的主角了。

所以接下来,就要开始部署SSL证书了。

首先部署Let’s Encrypt是需要用到80与443端口的,所以在部署的时候必须关掉Web服务器,指令如下:

service apache2 stop

之后切换到Let’s Encrypt的目录下:

cd /opt/letsencrypt

由于Let’s Encrypt自带图形化界面,所以接下来只需要键入以下指令进入即可:

./letsencrypt-auto --apache

在这里,界面会引导你键入邮箱地址,选择你需要配置SSL的域名,以及需要配置SSL的conf文件。

Let’s Encrypt会扫描Apache的conf文件,并且列出全部的域名。我这里的建议是一个一个去配置SSL,也就是去掉Let’s Encrypt替你勾选的大部分星号,这样做的好处是方便控制以及避免不必要的错误。

Let’s Encrypt向Apache提供的conf部署方式有两种,一种Easy模式,具体来说是生成一个提供SSL的conf文件,并且不影响你原先部署HTTP的conf。也就是用户可以用HTTP方式访问,也可以使用HTTPS方式访问,互不影响。

另外一种是Secure模式,具体来说也是生成一个新的conf文件,不过会在你老的conf文件里写入rewrite链接,跳转至HTTPS。也就是用户能使用HTTPS方式访问,如果用户使用HTTP方式访问的话,会强制切换到HTTPS模式。这种模式会更安全一点,所以我选的这一种。

点完OK之后,部署就完成了,打开Web服务器:

service apache2 start

然后访问原先的地址,地址栏左侧就会有绿绿的HTTPS了^_^

 

番外篇:如何配置Let’s Encrypt SSL证书自动续期

Let’s Encrypt颁发的证书有效期只有90天,我这种懒人没事肯定会忘记续期这件事的,所以我得配置好让它自己续期。

这里需要用到国外大神开发的一个小程序:le-renew

首先得安装一下这个小插件需要的依赖:

apt-get install bc

然后键入以下两行指令来安装le-renew:

curl -L -o /usr/local/sbin/le-renew http://do.co/le-renew
chmod +x /usr/local/sbin/le-renew

接下来重新登入一下SSH,然后使用以下指令来测试该软件能否正常运行:

le-renew example.com(域名替换为你部署SSL的域名/子域名)

现在你的SSL证书差不多是刚生成的,所以它不会替你提交续期请求,但是会替你查询一下距离到期的时间。所以如果出现以下的信息,代表安装成功了:

Checking expiration date for example.com...
The certificate is up to date, no need for renewal (89 days left).

OK,接下来我们就需要用到神器,crontab:

crontab -e

然后在弹出的编辑器里,将下面的信息录入进去,写成一行:

30 2 * * 1 /usr/local/sbin/le-renew example.com >> /var/log/le-renew.log

OK,接下来保存文件,整个配置过程就彻底结束了。可以洗洗睡啦~


Update 2016/10/12

 

该部分操作是在Ubuntu 16.04 LTS + Apache环境下完成。

 

首先安装Let’s Encrypt:

apt-get install python-letsencrypt-apache

接下来开始安装证书:

letsencrypt --apache

然后安排自动更新证书:

letsencrypt renew --dry-run --agree-tos

如果以上这一条无法搞定,那么在cron中添加以下条目亦可:

letsencrypt renew

(题外话:讲道理,新版本的Let’s Encrypt配置已经小白到不需要单独写一篇了……)

配置ss-panel以及shadowsocks-manyuser过程

首先配置lamp

$ apt-get install apache2 mysql-client mysql-server php5 php5-cli php5-gd php5-mysql php5-curl php5-mcrypt

然后装phpmyadmin

$ apt-get install phpmyadmin

在www下建个目录

mkdir ss

//然后在这个目录里面git下ss-panel

//git clone https://github.com/orvice/ss-panel.git

//写个apache的conf文件,Root目录写在ss-panel/public下,并且a2ensite。

放弃安装V3,太不成熟,下载V2.5.1版本安装

下载地址:https://github.com/orvice/ss-panel/releases

wget到服务器上解压即可

由于我之前导入过V2.5.1之前的版本的数据库,所以这一次只需要导入ss_user_admin这个表就行,并且删除掉之前旧版本使用的ss_admin表。

然后记得将ss_user_admin里的UID字段设定为你的UID。当然,需要多admin也可以添加条目。

根据需求来修改/lib下的config-sample.php文件,并且改名为config.php。

因为我这次升级之前用的表都只是用MD5加密的,所以这回加密方式我设定为1,其他的根据要求设置就好。

然后切换到ss-panel的根目录,使用以下两行代码来更新各种需求的依赖库:

curl -sS https://getcomposer.org/installer | php
php composer.phar install

到这里ss-panel在Ubuntu上简单的部署就完成了,接下来我们部署shadowsocks-manyuser

先把项目git到本地:

git clone -b manyuser https://github.com/mengskysama/shadowsocks-rm.git

我们需要的只是这个目录里的shadowsocks文件夹里的内容,所以接下来的操作都是在shadowsocks目录里进行的。

然后安装一下pip安装器

sudo apt-get install python-pip

安装依赖:

pip install cymysql

配置一下config.py里的数据库信息
好了,这下试着运行一下shadowsocks目录下的servers.py(注意是servers.py不是server.py)

python servers.py

如果加载了一堆端口,恭喜你,成功运行了。(PS:现版本的manyuser会报root:db loop的错,原因未知,不过暂时不影响使用。)

然后编辑rc.local文件,设定一下开机启动:

vi /etc/rc.local

写入以下代码:

cd /manyuser/shadowsocks
screen -dmS Shadowsocks python servers.py

至此,全部配置完毕。叫上小伙伴,好好玩吧~

iptables玩法

由于iptables这个软件,直接通过console命令修改的规则是实时生效的,重启后便失效。

所以通过iptables-save与iptables-restore两个指令,就可以实现iptables规则的备份与长期保存。

就S3来看,配置文件我一般放在/etc/iptables.rule 这个文件下,所以如果确立规则没有问题的话,直接修改此文件,并用

iptables-restore < /etc/iptables.rule

这个指令导入文件即可。

而如果希望这个文件可以重启后自动生效的话,不妨在

/etc/network/interfaces

这个文件里,将

pre-up iptables-restore < /etc/iptables.rules

这一行代码加入进去,即可。

Ubuntu安装transmission流程

Ubuntu下配置transmission真是简单,用不到什么一键包,比centos方便好多

安装transmission-daemon

apt-get update
apt-get install transmission-daemon

首先启动transmission-daemon生成配置文件

/etc/init.d/transmission-daemon start

结束transmission-daemon进程,否则之后修改配置文件不会生效

/etc/init.d/transmission-daemon stop

修改配置文件

vi /etc/transmission-daemon/settings.json

这里就自己参照网上定义一下吧

ip白名单、用户名、密码、下载目录、web界面端口什么的。

再次启动transmission-daemon

体验飞一般的挂机下载吧