(1)遇忙转移:**67*电话号码#取消:##67#
(2)无应答转移:**61*电话号码#取消:##61#
(3)关机及不可及转移:**62*电话号码#取消:##62#
(4)无条件转移:**21*电话号码#取消:##21#
(5)消除所有转移:##002#
(1)遇忙转移:**67*电话号码#取消:##67#
(2)无应答转移:**61*电话号码#取消:##61#
(3)关机及不可及转移:**62*电话号码#取消:##62#
(4)无条件转移:**21*电话号码#取消:##21#
(5)消除所有转移:##002#
很多朋友拿到一台 VPS,执行 date -R
发现时区并不是北京时间。为了业务上的需要,我们需要改掉它。
在 CentOS 7 中可以使用 timedatectl
命令帮助我们修改服务器的时区。
我们可以使用 timedatectl
命令查看目前服务器里的时区设置:
Local time: Sat 2016-04-09 12:34:29 CST
Universal time: Sat 2016-04-09 04:34:29 UTC
RTC time: Sat 2016-04-09 04:34:29
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
可以看到目前服务器里的所有设置比如时间、时区、NTP 等等。
查看所有的时区:
timedatectl list-timezones
设置时区:
timedatectl set-timezone timezones
例如我们需要设置成上海的时间区:
timedatectl set-timezone Asia/Shanghai
设置完时区后当然还可以设置NTP服务器的开启和关闭:
开启NTP:”timedatectl set-ntp yes
”
关闭NTP:”timedatectl set-ntp no
”
当然 timedatectl 命令还可以设置日期与时间:
设置日期:”timedatectl set-time YYYY-MM-DD
”
设置时间:”timedatectl set-time HH:MM:SS
”
— 注意此方法仅适用于:CentOS 7+ / RHEL 7+ / Fedora 20+
有时候,即使你正确设置好了时区,你的系统时间仍然有可能不准确。我们可以使用NTP协议来让系统时间与本地时区时间自动同步。
许多程序需要准确的时间才能发挥应有的功能。而NTP可以为网络上的机器提供精确的时间。NTP是一个应用层协议,使用UDP作为传输层协议。NTP时间服务器从原子钟(atomic clock)获取精确的时间。
使用Systemd的Linux系统可以用以下命令启用NTP网络时间自动同步。
timedatectl set-ntp true
这条命令会启动systemd-timesyncd服务。查看NTP状态 。
timedatectl status
在网上很多使用通过添加tz变量来设置时区的,但是博主并不推荐。明明有更快捷的方法,为什么不用呢?
直接执行如下命令:
dpkg-reconfigure tzdata
在列表中选择:Asia-> 回车 ->Shanghai 回车即可。
树莓派系统使用的linux是debian系统,所以树莓派启用root和debian是相同的。
debian里root账户默认没有密码,但账户锁定。
当需要root权限时,由默认账户经由sudo执行,Raspberry pi 系统中的Raspbian
默认主机名是 raspberrypi 默认用户是 pi 密码为 raspberry
为了方便折腾,建议第一时间启用 ROOT 账号吧~ 这个也很简单的,只需要执行一下两句命令即可:
// 重新开启root账号,可由pi用户登录后,执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可。
pi@raspberrypi:~$ sudo passwd root Enter new UNIX password: #输入第一遍密码 Retype new UNIX password: #输入第二遍密码
// 启用 root 账号登录
pi@raspberrypi:~$ sudo passwd --unlock root passwd: password expiry information changed.
输入上面第一行代码 第二行是提示错误的代码
原因是 新版本ssh默认关闭root登陆 你可以修改一下ssh的配置文件
pi@raspberrypi:~$ sudo nano /etc/ssh/sshd_config
Ctrl + W 快捷键 搜索 PermitRootLogin without-password
修改 PermitRootLogin without-password 为 PermitRootLogin yes
Ctrl + O 快捷键 保存
Ctrl + O 快捷键 退出 Nano 编辑器
执行完之后,用 reboot 命令重启,这样就可以解锁root账户。
使用管理员权限(经由sudo),编辑/etc/apt/sources.list
文件。参考命令行为:
$ sudo nano /etc/apt/sources.list
用#
注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
使用管理员权限(经由sudo),编辑/etc/apt/sources.list.d/raspi.list
文件。参考命令行为:
$ sudo nano /etc/apt/sources.list.d/raspi.list
用#
注释掉原文件内容,用以下内容取代:
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
注意: 网址末尾的raspbian
重复两次是必须的。因为Raspbian的仓库中除了APT软件源还包含其他代码。APT软件源不在仓库的根目录,而在raspbian/
子目录下。
编辑镜像站后,请使用sudo apt-get update
命令,更新软件源列表,同时检查您的编辑是否正确。
使用HTTPS
可以有效避免国内运营商的缓存劫持,但需要事先安装apt-transport-https
Today is Christmas
So Merry Christmas
此方案适合已搭建$$或者$$R的 毕竟配合SSTap
而且SSTap灵活性与可扩展都比较比较强 所以个人推荐使用SSTap
关于服务器的地区问题 由于一般外服游戏在HK都有服务器 所以VPS所在地当然推荐HK
你还需要拥有用来跑客户端软件的Linux系统的主机 我这里是树莓派 Linux路由器当然也可以
针对我校的网络好像会突然QoS的现象 所以推荐配合udp2raw使用
写这文的动机是因为作者的教程里面没有提到配合$$使用 所以本文针对这个来进行
下面这几个放出项目地址的都是 wangyu- 开发的
项目地址
udp2raw
UDPspeeder
tinyPortMapper
Q:为什么游戏要用UDP
A: 网络游戏 采用的是tcp协议还是udp协议? -- fei zhang的回答 -- 知乎
通过阅读Github 我自行总结出
上面只是概括 更多详情请自行查阅项目地址与学习计算机网络的知识
拓拔图
1 2 3 4 5 | TCP↓ |-------------tinyPortMapper-------------| SSTap--raspberrypi--| |--$$ Server |--UDPspeeder client--UDPspeeder server--| UDP↑ |
如果需要串联udp2raw 用这个图脑补UDP链路
1 | --UDPspeeder client--udp2raw client--udp2raw server--UDPspeeder server-- |
也就是把UDPspeeder server的出口用udp2raw server包装起来
同样的用udp2raw client解包并把解包后的包转给UDPspeeder client
也可以直接点进这里 UDPspeeder和udp2raw串联加速OpenVPN
为了方便 就不演示怎么搭配udp2raw 有问题的可以在评论区里问
如果看不到评论区 请检查梯子
假设$$服务在监听443端口 VPS地址为45.66.77.88
UDPspeeder监听端口为2333 参数使用游戏模式的 推荐设置
更多参数请点 这里
先上传 UDPspeeder 的二进制文件的 对应 版本到VPS 然后执行
1 | ./speederv2 -s -l 0.0.0.0:2333 -r 127.0.0.1:443 -k "passwd" --mode 0 -f2:4 -q1 |
VPS上就这样了
这里可以自定义监听端口 假设为800
先上传 UDPspeeder 和 tinyPortMapper 的二进制文件的 对应 版本到树莓派 然后执行
1 2 | ./speederv2 -c -l 0.0.0.0:800 -r 45.66.77.88:2333 -k "passwd" --mode 0 -f2:4 -q1 ./tinymapper -l 0.0.0.0:800 -r 45.66.77.88:443 -t #将TCP:800转发到45.66.77.88:443 |
UDPspeeder的参数server和client需要一致
如果会使用iptables等 可以不使用tinymapper
添加一个$$代理
IP设置为树莓派的IP 端口为树莓派正在监听的800
密码 协议等 与$$服务的一样
如果配置得当 就会得到这样的结果
然后选择游戏 连接 就行了
这里只简单阐述了配置的过程
个人认为参数需要根据VPS的带宽 当前到VPS延迟与丢包进行恰当的设置
可以在Github的Issue上找到很多有趣的东西 XD
EOF
【无条件转移】设定:*72电话号码 取消:*720 【无应答转移】设定:*92电话号码 取消:*920 【遇忙转移】 设定:*90电话号码 取消:*900
CDMA网络无单独不可及呼叫转移功能(即没有单独的关机、无信号呼转),建议使用无条件转移。 *92指令可实现久叫无应答、关机及无信号时触发转移; *68指令可实现关机、无信号、无应答或遇忙时被叫触发转移; *730可取消所有呼叫转移.
因为Ubuntu很多底层采用的是Python2.*,Python3和Python2是互相不兼容的,所以此时不能卸载Python2,需要将默认Python的指向Python3。
第一步 通过指令下载python3
sudo apt-get install python3
第二步 cd到根目录下,移除默认的python文件
rm /usr/bin/python
第三步 将对应的新的python3 link到之前的位置,即可
cd /usr/bin
ln -s /usr/bin/python3.4 /usr/bin/python
查看当前版本 成功!
由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼容,如何让脚本在对应的Python版本上运行,这个是值得总结的。
对于Ubuntu 16.04 LTS版本来说,Python2(2.7.12)和Python3(3.5.2)默认同时安装,默认的python版本是2.7.12。
当然你也可以用python2来调用。
如果想调用python3,就用python3.
对于Windows,就有点复杂了。因为不论python2还是python3,python可执行文件都叫python.exe,在cmd下输入python得到的版本号取决于环境变量里哪个版本的python路径更靠前,毕竟windows是按照顺序查找的。比如环境变量里的顺序是这样的:
那么cmd下的python版本就是2.7.12。
反之,则是python3的版本号。
这就带来一个问题了,如果你想用python2运行一个脚本,一会你又想用python3运行另一个脚本,你怎么做?来回改环境变量显然很麻烦。
网上很多办法比较简单粗暴,把两个python.exe改名啊,一个改成python2.exe,一个改成python3.exe。这样做固然可以,但修改可执行文件的方式,毕竟不是很好的方法。
我仔细查找了一些python技术文档,发现另外一个我觉得比较好的解决办法。
借用py的一个参数来调用不同版本的Python。py -2调用python2,py -3调用的是python3.
当python脚本需要python2运行时,只需在脚本前加上,然后运行py xxx.py即可。
#! python2
当python脚本需要python3运行时,只需在脚本前加上,,然后运行py xxx.py即可。
#! python3
就这么简单。
同时,这也完美解决了在pip在python2和python3共存的环境下报错,提示Fatal error in launcher: Unable to create process using ‘”‘的问题。
当需要python2的pip时,只需
py -2 -m pip install xxx
当需要python3的pip时,只需
py -3 -m pip install xxx
python2和python3的pip package就这样可以完美分开了。
文本编译自 Roadmap to becoming a web developer in 2018。原作者 Kamran Ahmed 解释说做这个路线图的原因是为了给一个他认识的老教授使用,分享给在校的大学生们,让他们对 Web 开发者这个职业有一个清晰的认识。
如果你还是一个学生,或者一个入门的 Web 开发者,也许踌躇满志,想做一番事业,只是对这个职业略感迷茫,新技术层出不穷,何去何从,希望下面这个四个路线图能够为你所用。
Web 开发者的三方方向分别为前端开发、后端开发和运维。
可以看到,作为 Web 开发者,不管从事什么职位,下面这些技能点是必须掌握的:
随着前端技术的不断发展,原来流行的一些技术已经不再出现在下面这个图中。
外刊君划出一些自己认为的重点:
原作者 Kamran Ahmed 推荐大家学习 Node.js 或者 PHP 7,他也喜欢 Go,再者则是 Ruby。
不过从中国的国情出发,以及从在各个领域取得的成绩和积累来看,Java 应该排在前列;除了语言的部分,就是本图中的其他黄色部门的学习都很重要,都是构建大型 Web 项目,丰富的功能所不可或缺的技能。
在中型以上的公司,运维体系的建设必不可少,是快速开发和发布的保证,是线上服务稳定,用户体验提升的基石。
感谢 Kamran Ahmed 为我们提供了一个清晰且与时俱进的路线图,如果你的老司机有新的点子或者建议,可以到 Github 上提交 PR 给原作者,完善这些路线图。
如果你 Web 马路上的萌新,也选定自己的一个方向,行动起来,在2018年顺利摘取小蓝旗,实现自己的人生目标吧。
好了,外刊君仔细看了一下这些路线图,虽然知道七七八八,还是有很多很多得学习起来,看书去了。