<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芯)插座,旁边一般有
一般机箱有两个,新机箱有可能只有一个。笔记本电脑有可能没有。
有很多工业仪器将它作为标准通信端口。通信的内容与格式一般附在仪器的用户说明书中。
计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输 时,避免了多条线路特性的不一致而被广泛采用。
(1)接口的信号内容
(2)接口的电气特性
(3)
(4)传输电缆长度
1.RS-232-C是美国电子工业协会EIA(Electronic
2.RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485
以往,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
TXD指Transmitted
RXD指Received
RTS指Request
CTS指Clear
DTR指Data
DSR指Data
在制作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
这一点不做任何答疑。
2.
操作系统:WindowsXP(其他Windows系统没有测试)
PHP5.1.4:
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
四:演示代码:
[color=Green][font=Times
//-------------------------------------------------------------------------- // 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 = "1234567890abcdefghijklmn opqrstuvwxyz"; 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 (krruv981gpf1pmi1fz4qz09e 9) 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 (idb0laix4a6ryxz5nb7u74ia za601it6sv) S_RECV:(56)009=0.19170100 1150031782 (r9ypgtvu4j7w1u141qx6im20 ajy7) S_RECV:(53)010=0.19171000 1150031783 (wq5mp1sdfuet1tp0x3vk67n4 7) 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 (krruv981gpf1pmi1fz4qz09e 9) 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 (idb0laix4a6ryxz5nb7u74ia za601it6sv) C_SEND:(56)009=0.19170100 1150031782 (r9ypgtvu4j7w1u141qx6im20 ajy7) C_SEND:(53)010=0.19171000 1150031783 (wq5mp1sdfuet1tp0x3vk67n4 7) 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
CentOS开放端口的方法
Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld。所以,端口的开启还是要从两种情况来说明的,即iptables和firewalld。更多关于CentOs防火墙的最新内容,请参考Redhat官网[4.5 使用防火墙]。
一、iptables(centos 6及以前)
1.打开/关闭/重启防火墙
开启防火墙(重启后永久生效):chkconfig iptables on
关闭防火墙(重启后永久生效):chkconfig iptables off
开启防火墙(即时生效,重启后失效):service iptables start
关闭防火墙(即时生效,重启后失效):service iptables stop
重启防火墙:service iptables restartd
2.查看打开的端口
/etc/init.d/iptables status
3.打开某个端口(以8080为例)
(1)开启端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
(2)保存并重启防火墙
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
4.打开49152~65534之间的端口
iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
同样,这里需要对设置进行保存,并重启防火墙。
5.其他打开方式
我们还可以通过修改/etc/sysconfig/iptables文件的方式开启端口,如下
vi /etc/sysconfig/iptables
然后在文件中增加一行
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
参数说明:
- –A 参数就看成是添加一条规则
- –p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS
- –dport 就是目标端口,当数据从外部进入服务器为目标端口
- –sport 数据从服务器出去,则为数据源端口使用
- –j 就是指定是 ACCEPT -接收 或者 DROP 不接收
二、firewalld(centos7)
Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config
进行安装。
1.启动防火墙
systemctl start firewalld
2.禁用防火墙
systemctl stop firewalld
3.设置开机启动
systemctl enable firewalld
4.停止并禁用开机启动
sytemctl disable firewalld
5.重启防火墙
firewall-cmd --reload
6.查看状态
systemctl status firewalld或者 firewall-cmd --state
7.查看版本
firewall-cmd --version
8.查看帮助
firewall-cmd --help
9.查看区域信息
firewall-cmd --get-active-zones
10.查看指定接口所属区域信息
firewall-cmd --get-zone-of-interface=eth0
11.拒绝所有包
firewall-cmd --panic-on
12.取消拒绝状态
firewall-cmd --panic-off
13.查看是否拒绝
firewall-cmd --query-panic
14.将接口添加到区域(默认接口都在public)
firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙)
15.设置默认接口区域
firewall-cmd --set-default-zone=public(立即生效,无需重启)
16.更新防火墙规则
firewall-cmd --reload或firewall-cmd --complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态
添加规则,第二个需要断开连接,类似重启服务)
17.查看指定区域所有打开的端口
firewall-cmd --zone=public --list-ports
18.在指定区域打开端口(记得重启防火墙)
firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)
说明:
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
一键脚本搭建SS/SSR服务并开启BBR加速
什么是shadowsocks
shadowsocks可以指一种SOCKS5的加密传输协议,也可以指基于这种加密协议的各种数据传输包。
shadowsocks原理?shadowsocks正常工作需要服务器端和客户端两端合作实现,首先,客户端(本机)通过ss(shadowsocks)对正常的访问请求进行SOCK5加密,将加密后的访问请求传输给ss服务器端,服务器端接收到客户端的加密请求后,解密得到原始的访问请求,根据请求内容访问指定的网,得到网站的返回结果后,再利用SOCKS5加密并返回给客户端,客户端通过ss解密后得到正常的访问结果,于是就可以实现你直接访问该网站的“假象”。
为什么选择shadowsocks?不限终端(安卓,苹果,Windows,Mac都可用),流量便宜(服务器500G只要15元),方便(一键脚本,不需要专业知识)。
为什么要自己搭建ss/ssr?你也许会觉得买ss服务也很方便,但是你得要考虑以下几个问题。首先,买的ss服务,限制很多,终端可能只能同时在线2个,每个月就一点点流量可能价格却不便宜,有时候还被别人做手脚,流量跑的贼快;其次,别人收钱跑路怎么办?很多这种情况的;更重要的是,如第一个问题中描述的shadowsocks原理,如果有心人做了一点手脚,是可以得到你的访问记录的;而自己搭建ss/ssr服务,一键脚本也就10来分钟就可以搞定。
一键脚本搭建ss/ssr支持系统版本
脚本系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
注:这个脚本支持的系统版本是指ss服务器的版本(都没看过也没关系,不影响搭建),你本机是Windows、Mac、Linux,或者你想用手机端搭建ss/ssr服务器,安卓和苹果,都是可以的。
一键搭建SS/搭建SSR服务
注意,shadowsocks/shadowsocksR这两个只需要搭建一个就可以了!!!!我用的是SS。
1.下载一键搭建SS脚本文件(只需要执行一次,卸载SS后也不需要重新下载)
git clone https://github.com/flyzy2005/ss-fly
2.运行搭建ss脚本代码
ss-fly/ss-fly.sh -i flyzy2005.com 1024
其中flyzy2005.com换成你要设置的shadowsocks的密码即可(这个flyzy2005.com就是你ss的密码了,是需要填在客户端的密码那一栏的),密码随便设置,最好只包含字母+数字,一些特殊字符可能会导致冲突。而第二个参数1024是端口号,也可以不加,不加默认是1024~(举个例子,脚本命令可以是ss-fly/ss-fly.sh -i qwerasd,也可以是ss-fly/ss-fly.sh -i qwerasd 8585,后者指定了服务器端口为8585,前者则是默认的端口号1024,两个命令设置的ss密码都是qwerasd)
注:如果需要改密码或者改端口,只需要重新再执行一次搭建ss脚本代码就可以了,或者修改/etc/shadowsocks.json这个配置文件。
3.相关ss操作
修改配置文件:vim /etc/shadowsocks.json
停止ss服务:ssserver -c /etc/shadowsocks.json -d stop
启动ss服务:ssserver -c /etc/shadowsocks.json -d start
重启ss服务:ssserver -c /etc/shadowsocks.json -d restart
4.卸载ss服务
ss-fly/ss-fly.sh -uninstall
一键搭建shadowsocksR
再次提醒,如果安装了SS,就不需要再安装SSR了,如果要改装SSR,请按照上一部分内容的教程先卸载SS!!!
1.下载一键搭建ssr脚本(只需要执行一次,卸载ssr后也不需要重新执行)
git clone https://github.com/flyzy2005/ss-fly
,此步骤与一键搭建ss一致,出错可以参考上一部分内容。
2.运行搭建ssr脚本代码
ss-fly/ss-fly.sh -ssr
3.输入对应的参数
执行完上述的脚本代码后,会进入到输入参数的界面,包括服务器端口,密码,加密方式,协议,混淆。可以直接输入回车选择默认值,也可以输入相应的值选择对应的选项
全部选择结束后,会看到如下界面,就说明搭建ssr成功了:
Congratulations, ShadowsocksR server install completed!
Your Server IP :你的服务器ip
Your Server Port :你的端口
Your Password :你的密码
Your Protocol :你的协议
Your obfs :你的混淆
Your Encryption Method:your_encryption_method
Welcome to visit:https://shadowsocks.be/9.html
Enjoy it!
4.相关操作ssr命令
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status
配置文件路径:/etc/shadowsocks.json
日志文件路径:/var/log/shadowsocks.log
代码安装目录:/usr/local/shadowsocks
5.卸载ssr服务
./shadowsocksR.sh uninstall
一键开启BBR加速
BBR是Google开源的一套内核加速算法,可以让你搭建的shadowsocks/shadowsocksR速度上一个台阶,本一键搭建ss/ssr脚本支持一键升级最新版本的内核并开启BBR加速。
BBR支持4.9以上的,如果低于这个版本则会自动下载最新内容版本的内核后开启BBR加速并重启,如果高于4.9以上则自动开启BBR加速,执行如下脚本命令即可自动开启BBR加速:
ss-fly/ss-fly.sh -bbr
装完后需要重启系统,输入y即可立即重启,或者之后输入reboot命令重启。
判断BBR加速有没有开启成功。输入以下命令:
sysctl net.ipv4.tcp_available_congestion_control
如果返回值为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
后面有bbr,则说明已经开启成功了。
netsh命令备份/还原网络配置
如果用户使用笔记本电脑,并经常往来于家庭和公司之间,那么备份网络配置即可避免在网络配置改变之后重新配置。在windows98系统下可以使用”ipconfig /batch bak-netcfg”命令备份网络配置。在windows2000/XP系统下,可以使用netsh命令。
要把主机上的所有网络相关的配置信息备份到C盘test.txt文件,可以运行命令:
netsh dump>c:\test.txt
要把本机中远程访问连接和TCP/IP配置接口参数备份到C盘下的test.txt,可以运行命令:netsh interface dump>test.txt。
示例如下:
C:\>netsh dump>c:\test.txt,然后我们就可以在c盘找到test.txt文件,改文件的内容如下:
#========================
# 接口配置
#========================
pushd interface
popd
# 接口配置结束
# ———————————-
# IPHTTPS 配置
# ———————————-
pushd interface httpstunnel
reset
popd
# IPHTTPS 配置的结尾
#========================
# IPv4 配置
#========================
pushd interface ipv4
reset
set global defaultcurhoplimit=64 icmpredirects=enabled taskoffload=enabled
popd
# IPv4 配置结束
# ———————————-
# IPv6 配置
# ———————————-
pushd interface ipv6
reset
popd
# IPv6 配置的结尾
# ———————————-
# ISATAP 配置
# ———————————-
pushd interface isatap
popd
# ISATAP 配置结束
# ———————————-
# 6to4 配置
# ———————————-
pushd interface 6to4
reset
popd
# 6to4 配置结束
# ———————————-
# ISATAP 配置
# ———————————-
pushd interface isatap
popd
# ISATAP 配置结束
#========================
# 端口代理配置
#========================
pushd interface portproxy
reset
popd
# 端口代理配置结束
# ———————————-
# TCP 配置
# ———————————-
pushd interface tcp
reset
全局设置 rss=enabled chimney=automatic autotuninglevel=normal congestionprovider=none ecncapability=disabled timestamps=disabled netdma=enabled dca=enabled
popd
# TCP 配置结束
# ———————————-
# Teredo 配置
# ———————————-
pushd interface teredo
set state type=client servername=teredo.ipv6.microsoft.com. servervirtualip=0.0.0.0
popd
# Teredo 配置结束
# ———————————-
# 6to4 配置
# ———————————-
pushd interface 6to4
reset
popd
# 6to4 配置结束
# ————————————
# 桥配置 (不支持)
# ————————————
# ————————————
# 桥配置结束
# ————————————
# —————————————-
# 有线局域网配置
# —————————————-
pushd lan
popd
# 有线局域网配置结尾。
不支持移动宽带配置转储
# ==========================================================
# 健康注册机构配置
# ==========================================================
pushd nap hra
popd
# NAP HRA 配置的结尾
# —————————————–
# 远程访问配置
# —————————————–
pushd ras
set authmode mode = standard
delete authtype type = PAP
delete authtype type = MD5CHAP
delete authtype type = MSCHAPv2
delete authtype type = EAP
delete authtype type = CERT
add authtype type = MSCHAPv2
delete link type = SWC
delete link type = LCP
add link type = SWC
add link type = LCP
delete multilink type = MULTI
add multilink type = MULTI
set conf confstate = disabled
set type ipv4rtrtype = lananddd ipv6rtrtype = none rastype = ipv4
set wanports device = “WAN Miniport (IKEv2)” rasinonly = disabled ddinout = disabled ddoutonly = disabled maxports = 2
set wanports device = “WAN Miniport (L2TP)” rasinonly = disabled ddinout = disabled ddoutonly = disabled maxports = 2
set wanports device = “WAN Miniport (PPPOE)” ddoutonly = disabled
set wanports device = “WAN Miniport (PPTP)” rasinonly = disabled ddinout = disabled ddoutonly = disabled maxports = 2
set wanports device = “WAN Miniport (SSTP)” rasinonly = disabled ddinout = disabled ddoutonly = disabled maxports = 2
set user name = Administrator dialin = policy cbpolicy = none
set user name = Guest dialin = policy cbpolicy = none
set ikev2connection idletimeout = 5 nwoutagetime = 30
set ikev2saexpiry saexpirytime = 480 sadatasizelimit = 100
popd
# 远程访问配置结束。
# —————————————–
# 远程访问诊断配置
# —————————————–
pushd ras diagnostics
set rastracing component = * state = disabled
set modemtracing state = disabled
set cmtracing state = disabled
set securityeventlog state = disabled
set loglevel events = warn
popd
# 远程访问诊断配置结束
# —————————————–
# 远程访问 IP 配置
# —————————————–
pushd ras ip
delete pool
set negotiation mode = allow
set access mode = all
set addrreq mode = deny
set broadcastnameresolution mode = enabled
set addrassign method = auto
set preferredadapter
popd
# 远程访问 IP 配置结束。
# —————————————–
# 远程访问 IPv6 配置
# —————————————–
pushd ras ipv6
set negotiation mode = deny
set access mode = all
set routeradvertise mode = enabled
popd
# 远程访问 IPv6 配置结束。
# —————————————–
# 远程访问 AAAA 配置
# —————————————–
pushd ras aaaa
popd
# 远程访问 AAAA 配置结束。
# —————————————–
# WinHTTP 代理服务器配置
# —————————————–
pushd winhttp
reset proxy
popd
# WinHTTP 代理服务器配置末尾
以后在进行网络设置调整时,如果发生了操作错误,或者服务器网络出现故障,可以利用备份快速恢复网络设置:
netsh -f c:\test.txt或netsh exec c:\test.txt
linux服务器校对时间方法
Linux中有个ntp包可以自动校准时间,并且非常好用。
Debian系统安装NTP校时包:
1 apt-get install ntpdate
CentOS系统安装NTP校时包:
1 yum install ntp
校时命令:
1 ntpdate cn.pool.ntp.org
如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了:
1 00 12 * * * /sbin/ntpdate cn.pool.ntp.org
* cn.pool.ntp.org是ntp网络授时组织的中国授时源
方法二
快速校对Linux服务器时间至北京时间
服务器采用ntp更新时间,经常牵扯到UTC是否开启的问题,开启了时间就会快8个小时
前段时间朋友给我了下面的命令,一条命令解决之前的所有问题。
rdate -t 60 -s stdtime.gov.hk
使用rdate将stdtime.gov.hk服务器的时间抓取回来,然后写入硬件
hwclock -w
下面是rdate的命令使用方法介绍
功能说明:显示其他主机的日期与时间。
语 法:rdate [-ps][主机名称或IP地址…]
补充说明:执行rdate指令,向其他主机询问系统时间并显示出来。
参 数:
-p 显示远端主机的日期与时间。
-s 把从远端主机收到的日期和时间,回存到本地主机的系统时间。
qlv格式怎么转换
qlv格式怎么转换,qlv是腾讯视频的一种加密格式,大部分转码工具是无法转换的
-
先下载腾讯视频的客户端,进行安装,找到你要看的视频进行观看一次,让视频文件缓存在你电脑里面。
-
找到缓存文件,首先先找到缓存文件夹在哪,先打开腾讯客户端的设置里面找到如图
-
然后打开cmd。
可以按win键+r键 (win键就是键盘上带win图标的那个,alt和ctrl之间的)
这是打开了运行,输入cmd 在运行就可以了
win8.1的可以在开始键上右击里面有一个 命令提示符和命令提示符 管理员版 打开那个都可以。如图
-
在打开的cdm里面输入 e: 按下回车进入e盘
然后输入:copy/b *.tdl 1.mp4 对E盘下所有tdl格式的文件进行合并。然后你就会看到E盘下有个1.mp4的视频了。
权力的游戏第六季全集播出时间 1-10集时间表6月26日完结
权力的游戏第六季将在4月24日播出第一集,自此每周播放一集,以上是权力的游戏第六季1-10集的播放时间。
权力的游戏第六季全集播出时间:
权力的游戏第六季第一集:2016年4月24日
权力的游戏第六季第二集:2016年5月1日
权力的游戏第六季第三集:2016年5月8日
权力的游戏第六季第四集:2016年5月15日
权力的游戏第六季第五集:2016年5月22日
权力的游戏第六季第六集:2016年5月29日
权力的游戏第六季第七集:2016年6月5日
权力的游戏第六季第八集:2016年6月12日
权力的游戏第六季第九集:2016年6月19日
权力的游戏第六季第十集:2016年6月26日