CentOS7一键脚本安装WireGuard

于一键脚本

1、仅适用于centos7

2、VPS架构必须是KVM

3、测试了搬瓦工、谷歌云、Vultr的centos7,可以完美搞定

4、cento7大部分内核都是3.10,不能正确安装,所以需要升级

5、有些厂商的vps内核貌似升级不了,例如vpsserver,这个还是要自行解决

6、wireguard是一个peer对应一个客户端,如果需要多个客户端使用可查看多用户配置视频。

教程开始

1、VPS应安装为centos7系统,使用xshell或其他ssh工具连接VPS后,执行下面命令:

yum install -y wget && wget https://raw.githubusercontent.com/atrandys/wireguard/master/wireguard_install.sh && chmod +x wireguard_install.sh && ./wireguard_install.sh
2、执行脚本会弹出选择项,首先我们选择安装内核,安装过程中需要几分钟,最后按照提示重启。

3、重启完毕,使用xshell连接VPS,执行下面命令:

./wireguard_install.sh

4、执行命令会弹出和第2步相同的选择项,这次我们选择安装wireguard,安装过程中需要等几分钟,安装完成服务即自行启动了。

5、使用xftp等ftp工具连接vps,进入/etc/wireguard/目录,然后将client.conf下载到本地电脑。(这个配置文件里面包含的是客户端的各种参数,mac、linux客户端也是使用这些参数。)

6、下载安装TunSafe,这是一个windows端的第三方客户端,因为官方windows版本的还没开发完成,先用这个软件代替,TunSafe已经开源了,可以放心使用。

官网下载:TunSafe

7、打开TunSafe,点击file,选择import file,选择第5步下载的client.conf文件,导入到软件中。

8、导入后会自动连接,连接成功后,所有流量都会被代理,也就是全局代理。

9、使用Linux、Mac系统的同学,可以去官方查看一下如何安装对应的客户端,比较简单,这里就不讲了。

安卓版客户端教程

1、去Google Play下载wireguard,目前这个软件在Google Play中是未发布版,也可直接下载下面的f-droid的安装包。

安卓版wireguard:点击下载

2、将软件安装好,并将本教程服务端获取的client.conf文件传输到手机中。打开软件,点击加号,在弹出的页面选择create from file or archive,然后选择保存在手机的conf文件。

注意:这里可能会提示错误,原因是没有文件操作权限,去权限管理里给软件勾上存储权限即可。

选择文件后如下图所示

开启代理即可。

iOS版客户端

现在是测试版,官方和tunsafe都提供了测试版,需要先进链接安装testflight,然后再在手机上打开这个测试版连接,就可以跳转到testflight,然后安装就可以了

官方ios版:wireguard测试版

Tunsafe ios版:wireguard测试版

导入测试文件很简单,可以直接打开软件,扫描服务上生成的二维码,也可以把文件复制到手机,然后用软件打开。

多用户

wireguard一个配置文件同一时间只能连接一个设备,所以你如果需要多用户,那么需要多个配置文件。

多用户配置可以参考这个视频,讲解的应该够清楚。

非常重要

这里是一些大家wireguard后遇到各种问题的排查过程,遇到问题先来这里看,有遇到问题自行解决过了而且下面没提及到的,请各位童鞋留言,我会补充上。

服务端

1、首先使用 wg 命令,查看wireguard服务是否正常启动,peer是否正常。

2、检查配置文件wg0.conf,ip不可使用ipv6,因为ip是自动联网查询的,有可能会得到ipv6地址,需要改成ipv4的地址。

3、使用 ip link 命令查看物理网卡是否为eth0,如果不是将真实名称(除了lo、wg0的那个网卡)替换wg0.conf中的eth0。

4、你的云服务商的防火墙是否放行。像谷歌云/阿里云等在web控制台都可以看到防火墙设置,需自行配置放行规则。

5、你的云服务器的内网IP段不要和10.0.0.1/24冲突,我遇到过谷歌云内网网段(自己配置的)和wg使用的网段冲突的情况,这种问题很少见,除非是你自己配置的内网IP。

客户端(windows)

1、用管理员权限打开tunsafe,不要同时开启其他代理类软件。

2、如果是电脑直接拨号上网,可能会出现无法连接的情况,换路由器拨号。

3、有安装过SSTAP的情况(它安装的虚拟网卡会设置静态IP),wireguard可能会共用sstap安装的网卡,注意把这个虚拟网卡的ip和dns设置为自动获取。

4、安装过其他VPN的卸载一下,重装tunsafe试试。

5、本地ip地址可能是10.0.0.1/24网段的,会有冲突,给wireguard设置其他网段,默认10.0.0.1改成其他,例如10.8.0.1。

脚本内容:

#!/bin/bash

#判断系统
if [ ! -e ‘/etc/redhat-release’ ]; then
echo “仅支持centos7”
exit
fi
if [ -n “$(grep ‘ 6\.’ /etc/redhat-release)” ] ;then
echo “仅支持centos7”
exit
fi

#更新内核
update_kernel(){

yum -y install epel-release curl
sed -i “0,/enabled=0/s//enabled=1/” /etc/yum.repos.d/epel.repo
yum remove -y kernel-devel
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available
yum -y –enablerepo=elrepo-kernel install kernel-ml
sed -i “s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/” /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.19.1-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-ml-devel-4.19.1-1.el7.elrepo.x86_64.rpm
yum -y –enablerepo=elrepo-kernel install kernel-ml-devel
read -p “需要重启VPS,再次执行脚本选择安装wireguard,是否现在重启 ? [Y/n] :” yn
[ -z “${yn}” ] && yn=”y”
if [[ $yn == [Yy] ]]; then
echo -e “VPS 重启中…”
reboot
fi
}

#生成随机端口
rand(){
min=$1
max=$(($2-$min+1))
num=$(cat /dev/urandom | head -n 10 | cksum | awk -F ‘ ‘ ‘{print $1}’)
echo $(($num%$max+$min))
}

wireguard_update(){
yum update -y wireguard-dkms wireguard-tools
echo “更新完成”
}

wireguard_remove(){
wg-quick down wg0
yum remove -y wireguard-dkms wireguard-tools
rm -rf /etc/wireguard/
echo “卸载完成”
}

config_client(){
cat > /etc/wireguard/client.conf <<-EOF [Interface] PrivateKey = $c1 Address = 10.77.77.2/32 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $s2 Endpoint = $serverip:$port AllowedIPs = 0.0.0.0/0, ::0/0 PersistentKeepalive = 25 EOF } #centos7安装wireguard wireguard_install(){ curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo yum install -y dkms gcc-c++ gcc-gfortran glibc-headers glibc-devel libquadmath-devel libtool systemtap systemtap-devel yum -y install wireguard-dkms wireguard-tools yum -y install qrencode mkdir /etc/wireguard cd /etc/wireguard wg genkey | tee sprivatekey | wg pubkey > spublickey
wg genkey | tee cprivatekey | wg pubkey > cpublickey
s1=$(cat sprivatekey)
s2=$(cat spublickey)
c1=$(cat cprivatekey)
c2=$(cat cpublickey)
serverip=$(curl ipv4.icanhazip.com)
port=$(rand 10000 60000)
eth=$(ls /sys/class/net | grep e | head -1)
chmod 777 -R /etc/wireguard
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
service iptables save
service iptables restart
echo 1 > /proc/sys/net/ipv4/ip_forward
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
sysctl -p
cat > /etc/wireguard/wg0.conf <<-EOF [Interface] PrivateKey = $s1 Address = 10.77.0.1/16 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -I FORWARD -s 10.77.77.1/24 -d 10.77.77.1/24 -j DROP; iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -D FORWARD -s 10.77.77.1/24 -d 10.77.77.1/24 -j DROP; iptables -t nat -D POSTROUTING -o $eth -j MASQUERADE ListenPort = $port DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $c2 AllowedIPs = 10.77.77.2/32 EOF config_client wg-quick up wg0 systemctl enable wg-quick@wg0 content=$(cat /etc/wireguard/client.conf) echo "电脑端请下载client.conf,手机端可直接使用软件扫码" echo "${content}" | qrencode -o - -t UTF8 } add_user(){ echo -e "\033[37;41m给新用户起个名字,不能和已有用户重复\033[0m" read -p "请输入用户名:" newname cd /etc/wireguard/ cp client.conf $newname.conf wg genkey | tee temprikey | wg pubkey > tempubkey
ipnum=$(grep Allowed /etc/wireguard/wg0.conf | tail -1 | awk -F ‘[ ./]’ ‘{print $6}’)
newnum=$((10#${ipnum}+1))
sed -i ‘s%^PrivateKey.*$%'”PrivateKey = $(cat temprikey)”‘%’ $newname.conf
sed -i ‘s%^Address.*$%'”Address = 10.77.77.$newnum\/32″‘%’ $newname.conf

cat >> /etc/wireguard/wg0.conf <<-EOF [Peer] PublicKey = $(cat tempubkey) AllowedIPs = 10.77.77.$newnum/32 EOF wg set wg0 peer $(cat tempubkey) allowed-ips 10.77.77.$newnum/32 echo -e "\033[37;41m添加完成,文件:/etc/wireguard/$newname.conf\033[0m" rm -f temprikey tempubkey } #开始菜单 start_menu(){ clear echo "=========================" echo " 介绍:适用于CentOS7" echo " 作者:A" echo "=========================" echo "1. 升级系统内核" echo "2. 安装wireguard" echo "3. 升级wireguard" echo "4. 卸载wireguard" echo "5. 显示客户端二维码" echo "6. 增加用户" echo "0. 退出脚本" echo read -p "请输入数字:" num case "$num" in 1) update_kernel ;; 2) wireguard_install ;; 3) wireguard_update ;; 4) wireguard_remove ;; 5) content=$(cat /etc/wireguard/client.conf) echo "${content}" | qrencode -o - -t UTF8 ;; 6) add_user ;; 0) exit 1 ;; *) clear echo "请输入正确数字" sleep 5s start_menu ;; esac } start_menu

VPN(PPTPD)一键安装包,支持Centos6和Centos7.同时支持Openvz和KVM

特别注意:

centos7 会自动停用默认的防火墙,安装 iptables 。所以如果有特别需求的同学就别碰了
装 vpn 的时候会自动添加 epel 的 yum 源,有洁癖或者特殊需求的请注意
装 vpn 的时候会自动卸载原来装过的 ppp 和 pptpd ,所以即使想重装也无需自己手动卸载
有出现安装不了的,无法正常使用的请留言,我尽力解决下。
安装命令:

wget –no-check-certificate https://raw.githubusercontent.com/91yun/vpn/master/vpn_centos_pptpd.sh && bash vpn_centos_pptpd.sh
vpn

选择 1 :安装 vpn

选择 2 :添加 vpn 账号(安装完后,随时可以使用 bash vpn_centos_pptpd.sh 来选择 2 添加 vpn 账号。当然也可以直接编辑 /etc/ppp/chap-secrets

vi /etc/ppp/chap-secrets

# 添加 vpn 用户,格式为: 用户名 pptpd 密码 *

奇亚Chia常见知识解答

P盘配置需求

CPU线程数>=P盘任务数*2 (主频越高线程越多越快)

内存大小>=P盘任务数*3.4G

NVME固态硬盘(缓存盘)>=P盘任务数*240G (读写速度越大越快)

要加快P盘速度可以堆配置增加同时P盘任务数,或者用多台电脑。

P盘目录不能为中文,过程中日志内没有error报错就是正常的,等待即可。

新人要了解chia,请先看群共享的链接里面的资料

问:绘图打开失效怎么处理?

答:修改失效的文件名,然后刷新农田列表

问:为什么我的节点没有连接?如何获得更多连接?

第 1 步。如果您的节点没有连接,这可能是众多原因之一。最有可能的是,没有用户有空间有新的连接,所以你不能连接到任何人。要解决这个问题,您应该尝试在路由器上打开端口 8444,以便其他同行可以连接到您。按照指南,但使用端口8444而不是8333,然后检查它是否工作,使用 yougetsignal.com/tools/ 8444。

端口 8444 是其他 Chia 计算机可以通信到您的 PC 的端口,Chia 可以快速与另一台经过验证的 PC 通信并连接起来,并开始下载并与 Chia 区块链同步。网络正在高速增长/扩张。许多新到的 Chia 同行 (计算机) 没有打开 8444 端口。它使网络很难帮助其他用户同步。一旦您的端口打开,它将快速与其他人同步。

详细解释普通电脑可以与无尽的端口进行通信-如果用户发送信号-PC打开端口信号出去,PC关闭端口。Chia 使用端口 8444 作为即时验证通信。因此,开放端口可以允许即时通信并启动区块链同步。信号出现在端口 8444 – Chia pc 被验证, 然后两个用户的 pc, 打开自己的 “通信端口前端口 8421″, 新用户现在可以同步, 现在他们链接在一起, 形成 Chia 网格的一部分。如果关闭用户端口 8444,用户 PC 必须开始发送多个信号,并希望打开端口 8444 的 PC 将与他们链接,然后同步开始。(1)pc只能链接了几个电脑,并与这么多其他嘉用户上船,他们都不得不等待。请记住,Chia 构建在网状网络上,区块链在所有用户之间共享,而不是从中央 PC 共享。

第 2 步:您可能需要禁用配置文件中的 upnp (+/.chia/版本/配置/配置.yaml)或使用 cli 命令。您可能在同一台机器上或在同一 wifi 网络上运行多个节点。请务必关闭计算机上的所有嘉应用程序。还要检查您的防火墙或防病毒软件,这可能正在阻止连接。chia configure -upnp false

第 3 步:开始接收同行可能需要几分钟时间。如果你仍然没有得到同行,你可以尝试删除你的同行DB位于,并确保你已经安装了最新的版本。

问:我看到块和连接,但我的节点说”未同步”

这通常是一个系统时钟问题,这会导致显示”未同步”,即使你是。您的时钟必须设置为确切的时间,并且不能超过 5 分钟的折扣。检查您的手机和计算机,并确保时间是相同的。

问:P好的图可以把plot文件复制到一个新的机械硬盘继续耕种?

答:可以的,plot文件与钱包绑定,与硬盘无关,可以进行移动,在钱包中添加plot文件路径就可以继续耕地了

问:关于P盘配置

答:101g单图 占用内存2-3G 磁盘空间 239G cpu2线程

问:钱包状态 一直未同步

答:软件会自动进行同步,可能时间会长一些,耐心等待即可

问:P盘时卡在31%

答:属于正常现象。程序设计就是这样,在此阶段会需要等待较长时间,耐心等待即可

问:多台电脑可以用一个账号不?

答:可以,只需要在其他电脑的钱包中导入此账号

问:P图说明

问:P图过程中断电或意外关闭可以继续吗?

答:不可以,只能重新开始,所以尽量保持运行状态,切勿关闭软件或电脑重启

问:生成PLOT文件的选项中,队列与并发有什么区别?

答:队列是指一个完成生,再自动生成下一个。并发是指同时生成多个PLOT文件,但要考虑SSD缓存区是否够大,CPU 和内存是否跟得上。当然是并发越多越好的。

问:一个PLOT文件完成生,缓存区需要手动删除么?

答:不需要,系统会自动删除,并把生成的PLOT文件复制到最终目录。

问:临时目录不用SSD可以么?

答:可以。但是临时目录的速度决定了PLOT文件生成的速度,所以建议用高速SSD。而且机械硬盘并发P盘有可能会卡死。

问:机械硬盘太贵了,用移动硬盘可以么?

答:可以是可以,但USB口速度不快,稳定性也一般。可以考虑把里面的硬盘拆出来接到主板上

国内的硬盘全部疯涨了,可以考虑亚马逊海外购,还没或太多,就是到货时间长些。如这个东芝的10T企业盘,2000左右到手。Toshiba 东芝 10TB SATA 512e 7200RPM 3.5 英寸企业硬盘 – MG06ACA10TE

问:我有两个SSD,怎么合理运用来并发P盘?

答:可以组RAID,最简单的就是 选择临时目录处,点显示高级选项,则可以选择第二临时目录。

问:用钱包挖和用矿池挖有什么区别?

答:用钱包挖收成只会是整数的币,如1只这样,可能好久都没有收成。矿池则是和众多网友分成,一天收入0.00000x只币这样,另外矿池是要收手续费的,一般是5%以上。

问:生成PLOT文件时(绘图中),有时会卡在31%不动,怎么回事?

答:我和很多网友都碰到过。具体看下图

问:绘图过程中可以重启电脑或关闭软件么?

答:可以,但之前的绘图进度不会保存,只能重新开始。

问:这个币的总量有多少?存在预挖吗?

答:总量无上限,团队有预挖2100万个(前期不会流通,解锁日期不详),预计今年第一年产出336万多个,前12年流通总量将会达到3900多万个。

问:这个挖矿对网络带宽有要求吗?耗电吗?

答:不需要网络带宽,能上网就行。不耗电,主机每天满载功率,耗电不到4度。挖矿需要连网,P图可以脱机运算,不吃网络带宽。

问:用固态硬盘即SSD来plot图,放到机械硬盘即HDD里面挖矿就可以了吗?完成一次plot就行了吗?还需要再plot吗?

答:是的,plot好图,他自动放到你设置好的HDD路径里面,就可以挖了。plot的图越多,你的算力越大,越容易出块,正常的思路是一直plot下去。

问:现在使用消费级固态可以用来P图吗?

答:不建议使用,消费级固态如SN750,970PRO写入寿命都比较短。

问:为什么挖矿一天都没有产出区块?

答:普通硬盘算力低导致solo出块的概率低。

如何创建图D的过程

创建绘图非常耗时,在普通计算机上平均需要9-20小时,在高端计算机上平均需要4-8小时。有7个表中的操作分为4个阶段。

阶段:

  1. 计算表1到表7:将创建存储桶(默认值:128)作为temp目录中的文件,计算出7个表时,绘图时间进度约为42%
  2. 向后传播表7到1:向后传播7个表时,绘图时间进度约为61%
  3. 成对压缩表1至7:压缩7个表时,绘图时间进度约为98%
  4. 编写检查点表:将绘图转移到永久驱动器。它将删除临时存储中的所有文件,这将完成进度到100%

注意:建议使用添加的SSD或NVME存储来创建图,而不要使用主硬盘(特别是用于不可更换的NVME,例如在某些Mac或Windows笔记本电脑上),如果由于某种原因图无法完成,则必须使用通过删除其所有临时文件来删除。请注意,不要删除正在绘制的另一个图的临时文件。

问:预期上市价格多少?

答:预期上市价格暂时无法界定,市场定价权是由市场决定的。

问:同步不上或者很慢怎么办?

答:通过查看相关社群公告添加几个节点加快信息获取速度。

问:不小心关机或者退出软件后还能继续plot图吗?

答:不能,只能重新再来。

问:P好几张图,没有设置时间间隔怎么办?

答:没有设置时间间隔,plot就会失败,一般设置至少10分钟的间隔。

问:chia什么时候开始挖矿?

答:3月19日主网上线的,Chia官方声明上线6周后开放转账功能。

问:这个chia有啥应用吗?

答:chia目前的实体应用有:转账的账单归属权和转账过程中的资产撤回,同时chia还具备彩币功能,能够决定产权归属解决因为产权缺失导致的一系列经济纠纷。

问:可以找人代替P图然后卖给我写满的机械硬盘吗?

答:不建议,因为P的图是和钱包存在关联的,需要把钱包和图一起发给你才行,两个人同时都拥有助记词是不安全的。现在也有代P图的,原理就是使用助记词签名然后把签名内容给对方,目前暂时没有实践过。

问:P满机械硬盘后,还需要SSD吗?

答:如果不想再P图就不需要,甚至可以把机械硬盘拆出来,连接到闲置的电脑上连网挖矿就行了。

问:如果绘图过程中,钱包自己闪退或者白屏了怎么办?

答:如果没有了,需要看一下后台和临时储存盘里面chia的文件有没有变化,如果还在继续绘图你就等着,内存和硬盘读取还在显示就说明后台还在运行,等一段时间后绘图完成再打开客户端即可。

问:可以把绘制好的图复制到另一台电脑上同时挖吗?

答:不能,一个图就是唯一的,你复制是没有用的。

问:能一个机器P图一个机器挖矿吗?

答:可以,记得多个机器使用同一个助记词然后导入最终保存的图的路径即可。

问:想买二手配件自行组装可以吗?

答:尽量不建议自行组装。相比与专业矿机而言,二手组装配件的机器容易出现问题,同时二手配件就存在缺陷。用户在后期挖矿过程中可能会出现一系列的麻烦导致得不偿失。在二手配置时需要慎重考虑挖矿的收益是否可以回本,后期的收益是否存在盈利空间。投资本身就是一场对赌行为,打有把握的仗才能最大可能获胜。

到底什么配置够用?

PLOT:chia中的重要概念,可理解为农地,生成币的地方。网上也称为P盘等。

TBW : 是指固态硬盘理论寿命所对应的总写入数据量,800TBW即是指该固态硬盘的写入寿命是800TB,当超过这个写入量,即使未过保修期,也 不能保修。

PLOT的生成原理

CHIA挖矿要设置 临时目录与最终目录

临时目录:用作运算数据,生成PLOT文件,速度越快越好,所以最好是高速固态硬盘,容量越大越好。并行运算多个PLOT时,需要占用CPU和内存。

最终目录:当临时目录运算好PLOT文件后,就会自动生成到最终目录存放,最终目录不参与运算,所以用普通的机械硬盘就行了,容量越大越好,当然,用寿命长的企业盘更好。

配置总结:

固态硬盘:最重要就是这个,这个是对生成PLOT文件速度影响最大的,建议用m.2接口,最低1T以上,2T以上最好。速度越快越好,另外保修期与TBW大点的。看下图说明你就能理解SSD的作用了。

所以SSD越大,同时生成的PLOT文件就越多。PLOT越多,自然收成就越快越多。

但同时随着CHIA越来越火,也出现了越来越多的骗局,当然有的不能叫骗局,只是很坑钱,那我们暂时都称为坑吧
1号坑——私募CHIA的股份
看见群里有人在发说是CHIA中国区唯一授权私募股份的机构。投钱获得CHIA公司的原始股份,并且未来对应还给他多少的币。
官方已经发文,说不存在私募,而且官方重点强调中国有很多骗子破坏公司声誉。希望大家不要上当。

2号坑——销售CHIA算力

一时间各个公司推出了购买CHIA算力的产品。平均1T的价格300元左右。而且有的有效期才1年。P盘期70天。现在市面上硬盘1T才100元左右。有这个钱你都能买3倍的硬盘了。

3号坑——销售CHIA矿机
CHIA火了,而且挖矿对机器要求不高,于是各种3,5年的二手卖不出去的机器挂上CHIA矿机的名头就上线了。卖的比新机器还贵。完全就是欺负小白啥也不懂,急于买个机器挖矿。各位,挖矿最好还是自己配机器,省钱又可靠。

4号坑——销售硬盘

很多二手硬盘当新硬盘卖,号称2年包换,要大家放心大胆的买。
建议大家还是不要图那么一点点的便宜。再便宜也不会比各个旗舰店便宜20%吧。图这么点便宜,到时候硬盘坏了,是可以给你换,但是你这么长时间的盘白P了,这损失可大了。

5号坑——代P盘
有些人心急,想着赶紧多P一点盘出来,比别人挖的多。
你静下心来想一下,算一下,多又能多多少?你代P盘的这个钱其实可以买更多设备。换个角度,你可能用这个钱现在去收币得到的收益都比花钱P盘得到的收益高。

6号坑——收币
我不反对收币,也不反对卖币。现在无论收币卖币都正常。但是其中有很多骗子,大家要小心。无论收币还是卖币都有骗子。给了钱不给币,给了币不给钱。骗了一个换个马甲接着骗,一天能骗不少钱。

c盘清理代码 批处理.bat

@echo off

echo 正在清除系统垃圾文件,请稍等……

del /f /s /q %systemdrive%*.tmp

del /f /s /q %systemdrive%*._mp

del /f /s /q %systemdrive%*.log

del /f /s /q %systemdrive%*.gid

del /f /s /q %systemdrive%*.chk

del /f /s /q %systemdrive%*.old

del /f /s /q %systemdrive%recycled*.*

del /f /s /q %windir%*.bak

del /f /s /q %windir%prefetch*.*

rd /s /q %windir%temp & md %windir%temp

del /f /q %userprofile%cookies*.*

del /f /q %userprofile%recent*.*

del /f /s /q “%userprofile%Local SettingsTemporary Internet Files*.*”

del /f /s /q “%userprofile%Local SettingsTemp*.*”

del /f /s /q “%userprofile%recent*.*”

echo 清除系统垃圾完成!

echo. & pause

 

C盘清理

JS,表格列表求和代码

<table width=”200″ border=”0″ id=”table”>
<tr>
<td>名称</td>
<td>图片</td>
<td>价格</td>
<td>操作</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>10</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>10</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>10</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>10</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>合计</td>
<td> </td>
<td> </td>
</tr>
</table>
<script type=”text/javascript”>
var calcTotal=function(table,column){//合计,表格对象,对哪一列进行合计,第一列从0开始
var trs=table.getElementsByTagName(‘tr’);
var start=1,//忽略第一行的表头
end=trs.length-1;//忽略最后合计的一行
var total=0;
for(var i=start;i<end;i++){
var td=trs[i].getElementsByTagName(‘td’)[column];
var t=parseFloat(td.innerHTML);
if(t)total+=t;
}
trs[end].getElementsByTagName(‘td’)[column].innerHTML=total;
};
calcTotal(document.getElementById(‘table’),2);
</script>

PHP在RS232串口通讯协议的应用演示[测试环境PHP5.1.4]

1. 预先的知识:
什么是RS232/RS484及其应用?
引用:
RS232接口就是串口,电脑机箱后方的9芯(或25芯)插座,旁边一般有 “|O|O|” 样标识。 
一般机箱有两个,新机箱有可能只有一个。笔记本电脑有可能没有。 
有很多工业仪器将它作为标准通信端口。通信的内容与格式一般附在仪器的用户说明书中。 

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输 时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。 RS- 232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、 调制 解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标 准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间 串行二进制数据交换 接口技术标准”该标准规定采用一个25个脚的 DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信 号的电平加以规定。 

(1)接口的信号内容 实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。RS-232-C最常用的9条引线的信号内容见附表1所示 

(2)接口的电气特性 在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻 辑“1”,-5— -15V;逻辑“0” +5— +15V 。噪声容限为2V。即 要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号 作为逻辑“1” 
(3) 接口的物理结构 RS-232-C接口连接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端. 一些设备 与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9 芯插头座,传输线采用屏蔽双绞线。 

(4)传输电缆长度 由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实 际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10% 而得出附表2 的实验结果。其中1号电缆为屏蔽电缆,型号为DECP.NO.9107723 内有三对双绞线,每对由22# AWG 组成,其外覆以屏蔽 网。2号电缆为不带屏蔽的电缆。型号为DECP.NO.9105856-04是22#AWG的四芯电缆。 

1.RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标 准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数 情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为每秒 50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有 2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以 增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。 

2.RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有 抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。 RS-485采用半双工工作方式,任 何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以 联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。 

以往,PC与智能设备通讯多借助RS232、RS485、以太网等方式,主要取决于设备的接口规范。但RS232、RS485只能代表通讯的物理 介质层和链路层,如果要实现数据的双向访问,就必须自己编写通讯应用程序,但这种程序多数都不能符合ISO/OSI的规范,只能实现较单一的功能,适用于 单一设备类型,程序不具备通用性。在RS232或RS485设备联成的设备网中,如果设备数量超过2台,就必须使用RS485做通讯介质,RS485网的 设备间要想互通信息只有通过“主(Master)”设备中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是从 (Slave)设备。而现场总线技术是以ISO/OSI模型为基础的,具有完整的软件支持系统,能够解决总线控制、冲突检测、链路维护等问题。

来源网址:http://zhidao.baidu.com/question/4578886.html

从串口双机对联线缆指南
引用:
(一)串行通讯电缆的制作

无论是9孔插头,还是25孔插头,其串行通讯电缆连接时都要遵循下列对接关系:

SG←→SG TXD←→RXD RXD←→TXD RTS←→CTS
CTS←→RTS DTR←→DSR DSR←→DTR

根据上述对接关系,就可以非常方便地连接串行通讯电缆。这里顺便介绍一下上述各引脚所代表的含义:

SG英文全称为Signal Ground/Common Return,表示信号地;
TXD指Transmitted Data,表示数据发送;
RXD指Received Data,表示接收数据;
RTS指Request To Send,表示发送请求;
CTS指Clear To Send,表示清除请求;
DTR指Data Terminal Ready,表示数据终端准备就绪;
DSR指Data Signal Rate Selector,表示数据置位准备就绪。

在制作9芯串口连线时,需要2个9孔插头和1.5米长的至少7芯的扁平电缆,引脚连线如下所示。

9孔插头-9孔插头引脚连线为:2-3、3-2、4-6、5-5、6-4、7-8、8-7。
9孔插头-25孔插头引脚连线为:2-2、3-3、4-6、5-7、6-20、7-5、8-4。
25孔插头-25孔插头引脚连线为:2-3、3-2、4-5、5-4、6-20、7-7、20-6。

来源网址:http://win2000server.vicp.net:88/Article_Show.asp?ArticleID=25

二、测试环境的构建:
1.  参考上面的《(一)串行通讯电缆的制作》,首先把两台电脑通过串口连结起来。
当然,你也完全可以这么操作一台电脑上面的两个串口,而不需要两台电脑;如果你有两个串口的话。
因为我以前做过工业控制底层开发,所以我可以很容易的构建这个基本的环境;
实际上,只要:[color=red]RxD TxD对接,GND直连即可,俗称三线连接。[/color]
这一点不做任何答疑。

2. PHP运行环境的构建:
操作系统:WindowsXP(其他Windows系统没有测试)
PHP5.1.4: http://cn.php.net/get/php-5.1.4-Win32.zip/from/a/mirror
PECL5.1.4:http://cn.php.net/get/pecl-5.1.4-Win32.zip/from/a/mirror
解压PHP5.1.4,把PECL5.1.4之中的php_dio.dll放到PHP5.1.4的ext目录之下
把PHP5.1.4之中的php.ini-dist拷贝粘贴为php.ini,并打开设置然后保存:

extension=php_dio.dll

这一点不做任何答疑。

三:参考资料:
1. 参考手册文档:
http://cn.php.net/manual/zh/ref.dio.php
http://cn.php.net/manual/zh/ref.exec.php
如果代码之中有你没有见过,或者没有使用过,或者不熟悉的函数,请访问以上网址。
主要使用了PHP的Direct IO Functions.

四:演示代码:
[color=Green][font=Times New Roman]

// -------------------------------------------------------------------------- 
// File name   RS232_Server.php 
// Description RS232演示上位机程序 
// Requirement PHP 5.1.4 (cli) (http://www.php.net) 
// 
// Copyright(C), HonestQiao, 2006, All Rights Reserved. 
// 
// Author: HonestQiao (honestqiao@hotmail.com/QQ:5601680)  
// 
// 程序简介: 
// 本程序与RS232_Client构成一个完整的演示系统,展示了PHP在RS232串口通讯上的应用。 
// 程序之中实现了一个基础但是完整的RS232通讯协议(HQB232),通讯协议格式如下: 
// 协议内容: 
//             C->S 01 //请求通讯 
//             S->C 02 //响应通讯 
//             C->S LEN DATA //LEN表示数据(DATA)长度 DATA表示实际数据 
//             C->S 03 //结束通讯 
// 说明:S表示上位机 C表示下位机 
//       HQB232表示HonestQiao演示的基础(Base)RS232通讯协议,包含了协议的 
//   请求和响应,数据帧的结构。 
//       演示过程为通讯的请求和响应,十次数据帧的发送, 通讯的结束 
//       数据帧的结构为当前的序号,microtime(),随机字符串 
//         
//       欢迎探讨PHP在RS232串口通讯上的应用。 
// -------------------------------------------------------------------------- 
set_time_limit(0); 
exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on'); 

$fd dio_open('COM1:', O_RDWR); 
if(!$fd) 
{ 
die("Error when open COM1"); 
} 

$ff dio_stat($fd);print_r($ff); 
echo "HQB232 SERVER is listenning on COM1\n"; 
/// read 
$len 2; 
$t=0;while (($t++)<1000)  
{ 
$data dio_read($fd, $len); 
if ($data) { 
if($data==chr(0).chr(1)){ 
echo "S_RECV:01\n"; 
echo "S_SEND:02\n"; 
dio_write($fd,chr(0).chr(2)); 
break; 
} 
} 
} 

/// read 
$len 2; 
$t=0;while (($t++)<1000)  
{ 
$len 2; 
$data dio_read($fd, $len); 
if($data==chr(0).chr(3)){ 
echo "S_RECV:03\n"; 
break; 
} 
elseif ($data) { 
$len intval($data); 
$data dio_read($fd, $len); 
if($data){ 
echo "S_RECV:($len)$data\n"; 
} 
} 
} 
dio_close($fd);









// File name   RS232_Client.php 
// Description RS232演示下位机程序 
// Requirement PHP 5.1.4 (cli) (http://www.php.net) 
// 
// Copyright(C), HonestQiao, 2006, All Rights Reserved. 
// 
// Author: HonestQiao (honestqiao@hotmail.com/QQ:5601680)  
// 
// 程序简介: 
// 本程序与RS232_Server构成一个完整的演示系统,展示了PHP在RS232串口通讯上的应用。 
// 程序之中实现了一个基础但是完整的RS232通讯协议(HQB232),通讯协议格式如下: 
// 协议内容: 
//             C->S 01 //请求通讯 
//             S->C 02 //响应通讯 
//             C->S LEN DATA //LEN表示数据(DATA)长度 DATA表示实际数据 
//             C->S 03 //结束通讯 
// 说明:S表示上位机 C表示下位机 
//       HQB232表示HonestQiao演示的基础(Base)RS232通讯协议,包含了协议的 
//   请求和响应,数据帧的结构。 
//       演示过程为通讯的请求和响应,十次数据帧的发送, 通讯的结束 
//       数据帧的结构为当前的序号,microtime(),随机字符串 
//         
//       欢迎探讨PHP在RS232串口通讯上的应用。 
// -------------------------------------------------------------------------- 
set_time_limit(0); 
exec('mode COM2: baud=115200 data=8 stop=1 parity=n xon=on'); 

$fd dio_open('COM2:', O_RDWR); 
if(!$fd) 
{ 
die("Error when open COM2"); 
} 

$ff dio_stat($fd);print_r($ff); 
echo "HQB232 CLIENT is start on COM2\n"; 
dio_write($fd,chr(0).chr(1));echo "C_SEND:01\n"; 
$len 2; 
$t=0;while(($t++)<1000) 
{ 
$data dio_read($fd, $len); 
if($data==chr(0).chr(2)){ 
echo "C_RECV:02\n"; 
break; 
} 
} 
$len 2; 
$t=0;while(($t++)<10) 
{ 
$sdata sprintf("d",$t) "=" microtime() (" randomkeys(rand(0,35)) ")"; 
$slen strlen($sdata); 
$stxlen sprintf("d",$slen); 
dio_write($fd,"$stxlen"); 
dio_write($fd,"$sdata");echo "C_SEND:($stxlen)$sdata\n"; 
//sleep(1); 
} 
dio_write($fd,chr(0).chr(3));echo "C_SEND:03\n"; 
dio_close($fd); 

function randomkeys($length) 
  { 
   $pattern "1234567890abcdefghijklmnopqrstuvwxyz"; 
   for($i=0;$i<$length;$i++) 
   { 
     $key .= $pattern{rand(0,35)}; 
   } 
   return $key; 
}
五、演示过程: 
上位机:开始->运行->CMD 
然后转到PHP5.1.4目录之下,执行: 
php -f RS232_Server.php 

下位机:开始->运行->CMD 
然后转到PHP5.1.4目录之下,执行: 
php -f RS232_Client.php 


实际结果如下:

F:\usr\local\php5>php -f e:\RS232_Server.php 
Array 
( 
    [device] => 3 
    [inode] => 0 
    [mode] => 8192 
    [nlink] => 1 
    [uid] => 0 
    [gid] => 0 
    [device_type] => 3 
    [size] => 0 
    [atime] => 0 
    [mtime] => 0 
    [ctime] => 0 
) 
HQB232 SERVER is listenning on COM1 
S_RECV:01 
S_SEND:02 
S_RECV:(53)001=0.19238200 1150031774 (krruv981gpf1pmi1fz4qz09e9) 
S_RECV:(42)002=0.19144800 1150031775 (jrhw41mphuy0ui) 
S_RECV:(40)003=0.19148500 1150031776 (lqq560p6v17r) 
S_RECV:(36)004=0.19148900 1150031777 (3ct02xmc) 
S_RECV:(28)005=0.19212700 1150031778 () 
S_RECV:(33)006=0.19162500 1150031779 (2ilqf) 
S_RECV:(34)007=0.19167800 1150031780 (vwmdfc) 
S_RECV:(62)008=0.19168700 1150031781 (idb0laix4a6ryxz5nb7u74iaza601it6sv) 
S_RECV:(56)009=0.19170100 1150031782 (r9ypgtvu4j7w1u141qx6im20ajy7) 
S_RECV:(53)010=0.19171000 1150031783 (wq5mp1sdfuet1tp0x3vk67n47) 
S_RECV:03 

F:\usr\local\php5>


F:\usr\local\php5>php -f e:\RS232_Client.php 
Array 
( 
    [device] => 3 
    [inode] => 0 
    [mode] => 8192 
    [nlink] => 1 
    [uid] => 0 
    [gid] => 0 
    [device_type] => 3 
    [size] => 0 
    [atime] => 0 
    [mtime] => 0 
    [ctime] => 0 
) 
HQB232 CLIENT is start on COM2 
C_SEND:01 
C_RECV:02 
C_SEND:(53)001=0.19238200 1150031774 (krruv981gpf1pmi1fz4qz09e9) 
C_SEND:(42)002=0.19144800 1150031775 (jrhw41mphuy0ui) 
C_SEND:(40)003=0.19148500 1150031776 (lqq560p6v17r) 
C_SEND:(36)004=0.19148900 1150031777 (3ct02xmc) 
C_SEND:(28)005=0.19212700 1150031778 () 
C_SEND:(33)006=0.19162500 1150031779 (2ilqf) 
C_SEND:(34)007=0.19167800 1150031780 (vwmdfc) 
C_SEND:(62)008=0.19168700 1150031781 (idb0laix4a6ryxz5nb7u74iaza601it6sv) 
C_SEND:(56)009=0.19170100 1150031782 (r9ypgtvu4j7w1u141qx6im20ajy7) 
C_SEND:(53)010=0.19171000 1150031783 (wq5mp1sdfuet1tp0x3vk67n47) 
C_SEND:03 

F:\usr\local\php5>


六:说明 
1. exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on'); 
    exec('mode COM2: baud=115200 data=8 stop=1 parity=n xon=on'); 

mode是CMD下面的命令,表示设置串口的参数,因为dio_tcsetattr() 未在Windows下面实现,所以需要使用CMD的mode命令来进行设置,具体用法,请看:help mode 

2. 通讯协议使用ASCII文本进行,没有使用HEX十六进制。因为是演示程序,所以协议非常简单,但是一个协议基本的内容都有了。 

3. 下位机程序的sleep(1),这个是通讯之中常见的情况,数据传输和上位机处理需要一定的时间。 

4. 演示的为RS232,以此类推,你也可以用到其他的场合。例如:简单修改,应用到HTTP通讯。 

5. 硬件环境的建立,PHP环境的建立,不做任何答疑。 

6. 欢迎探讨。 

7. 感谢mikespook的意见,附加,如果是*nix,则: 
'/dev/ttyS0'表示第一个COM端口,依此类推;端口的设置,应该在dio_open之后,使用: 
dio_tcsetattr($fd, array( 
  'baud' => 9600, 
  'bits' => 8, 
  'stop'  => 1, 
  'parity' => 0 
));

Shadowsocks客户端下载地址

各版本Shadowsocks客户端下载地址(Windows,Mac,Linux,Android/安卓,iOS/苹果)

官方客户端下载地址在:Shadowsocks Clients

不用再购买节点,自己搭建一台ss服务器:一键脚本搭建SS/SSR服务并开启BBR加速

Shadowsocks各版本官方下载地址

1. Windows客户端下载地址:https://github.com/shadowsocks/shadowsocks-windows/releases

Windows对Framework的版本要求比价高,我的是4.0.2的要求Framework4.6.2。如果是XP或者Framework比较低的,可以直接下载低版本的ss(windows 2.3.1下载地址:https://github.com/shadowsocks/shadowsocks-windows/releases?after=2.5.1

2. Mac客户端下载地址:https://github.com/shadowsocks/ShadowsocksX-NG/releases

3. Linux客户端下载地址:https://github.com/shadowsocks/shadowsocks-qt5/wiki/Installation

4. Android/安卓客户端下载地址:https://github.com/shadowsocks/shadowsocks-android/releases

5. iOS/苹果客户端直接在App Store里搜索shadowsock关键字(或者wingy关键字,FirstWingy可用 2018.03.25),软件经常被下架,我目前用的是Wingy & Shadowrocket~如果找不到,你也可以通过PP助手去下载Shadowrocket。(2018年6月18日更,目前App Store可用免费iOS软件:暂无。收费软件:SuperWingy,ShadowBroken。推荐免费下载iOS客户端方法:也可以电脑下载PP助手,手机连上电脑后会自动将PP助手同步至手机,不需要越狱,之后在手机上通过PP助手下载shadowrocket)

在CENTOS 7上搭建Shadowsocks图文教程

这里介绍的是使用Pip作为管理软件对shadowsocks进行管理,所以我们应该首先安装一下pip。

安装pip

pip的安装这里参考官网-Installation,即,输入curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py后回车,如下:

[root@ssserver ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1604k  100 1604k    0     0  11.1M      0 --:--:-- --:--:-- --:--:-- 11.2M

然后,输入python get-pip.py之后回车,如下:

[root@ssserver ~]# python get-pip.py
Collecting pip
  Downloading https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 11.3MB/s 
Collecting wheel
  Downloading https://files.pythonhosted.org/packages/81/30/e935244ca6165187ae8be876b6316ae201b71485538ffac1d718843025a9/wheel-0.31.1-py2.py3-none-any.whl (41kB)
    100% |████████████████████████████████| 51kB 17.5MB/s 
Installing collected packages: pip, wheel
Successfully installed pip-18.0 wheel-0.31.1
[root@ssserver ~]# 

安装shadowsocks

输入pip install shadowsocks后回车,如下:

[root@ssserver ~]# pip install shadowsocks
Collecting shadowsocks
  Downloading https://files.pythonhosted.org/packages/02/1e/e3a5135255d06813aca6631da31768d44f63692480af3a1621818008eb4a/shadowsocks-2.8.2.tar.gz
Building wheels for collected packages: shadowsocks
  Running setup.py bdist_wheel for shadowsocks ... done
  Stored in directory: /root/.cache/pip/wheels/5e/8d/b6/3e2243a7e116984b2c3597c122c29abcfeac77daa260079e88
Successfully built shadowsocks
Installing collected packages: shadowsocks
Successfully installed shadowsocks-2.8.2

提示安装成功!

配置shadowsocks

输入编辑文件命令vi /etc/shadowsocks.json并回车,如下:

[root@ssserver ~]# vi /etc/shadowsocks.json

上述步骤是编辑一个新文件,按键盘i键后,粘贴下面内容:

{
    "server":"0.0.0.0",
    "server_port":50013,
    "local_port":1080,
    "password":"1234567890",
    "timeout":600,
    "method":"aes-256-cfb"
}

然后按键盘’Esc’键,再按shift+:键,再输入wq并回车。文件编辑结束。

上面的50013是你的服务器端口,1234567890是你进行连接的密码。

将shadowsocks加入系统服务

输入编辑文件命令vi /etc/systemd/system/shadowsocks.service并回车,如下:

[root@ssserver ~]# vi /etc/systemd/system/shadowsocks.service

按键盘i键后,粘贴下面内容:

[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target

然后按键盘’Esc’键,再按shift+:键,再输入wq并回车。文件编辑结束。

启动shadowsocks服务并设置开机自启

# 设置开机自启命令
systemctl enable shadowsocks

# 启动命令
systemctl start shadowsocks

#查看状态命令
systemctl status shadowsocks

依次执行上面的三条命令,如下:

[root@ssserver ~]# vi /etc/shadowsocks.json
[root@ssserver ~]# 
[root@ssserver ~]# 
[root@ssserver ~]# vi /etc/systemd/system/shadowsocks.service
[root@ssserver ~]# 
[root@ssserver ~]# 
[root@ssserver ~]# 
[root@ssserver ~]# systemctl enable shadowsocks
Created symlink from /etc/systemd/system/multi-user.target.wants/shadowsocks.service to /etc/systemd/system/shadowsocks.service.
[root@ssserver ~]# systemctl start shadowsocks
[root@ssserver ~]# systemctl status shadowsocks
 shadowsocks.service - Shadowsocks
   Loaded: loaded (/etc/systemd/system/shadowsocks.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-08-28 13:27:53 UTC; 7s ago
 Main PID: 1259 (ssserver)
   CGroup: /system.slice/shadowsocks.service
           └─1259 /usr/bin/python /usr/bin/ssserver -c /etc/shadowsocks.json

Aug 28 13:27:53 ssserver systemd[1]: Started Shadowsocks.
Aug 28 13:27:53 ssserver systemd[1]: Starting Shadowsocks...
Aug 28 13:27:54 ssserver ssserver[1259]: INFO: loading config from /etc/shadowsocks.json
Aug 28 13:27:54 ssserver ssserver[1259]: 2018-08-28 13:27:54 INFO     loading libcrypto from libcrypto.so.10
Aug 28 13:27:54 ssserver ssserver[1259]: 2018-08-28 13:27:54 INFO     starting server at 0.0.0.0:50013