从零开始VPS (二): 使用更开放的互联网

January 1, 2015 | 14:07

今天是元旦, 祝大家2015快乐!

Q & A:

Q: 什么是更开放的互联网?
A: 可以上Youtube或者Facebook之类网站的互联网.

Q: 用VPS可以达到使用更开放的互联网的目的吗?
A: 完全可以.

Q: 我们要用什么手段来达到这个目的?
A: 在VPS上面安装一个软件, 并进行简单的一些配置即可.

Q: 听说一些V-P..N也能达到相同的目的?
A: 是的.

Q: 那为什么还要自己搭建这样一个东西?
A: 使用自己搭建的更稳定, 更安全, 更快...甚至你还可以卖给别人使用.

Q: 我并不需要使用什么开放的互联网, 这个教程对我有用吗?
A: 很有用. 安装一个软件并对其进行配置, 是使用Linux的基础. 即使你不使用本教程所涉及的软件, 跟着教程进行一两遍操作, 对入门Linux也是非常有帮助的.

Q: 给我一个 Linode 邀请码, 让我获得10美元的优惠
A: promotion code: linode10
referral code: 242da7f582d5afce52866f5a2c8ee1130ed35ee7

 

关于 Linux 的说明

使用 VPS 的过程, 就是在 Linux 系统下面输入各种各样的命令, 来达到我们的目的. 学习 Linux 系统的好方法也是从命令行开始. 不要对陌生的命令感到害怕, 只要多搜索多看资料, 这些命令还是很好掌握的. 掌握了之后, 你就会发现用命令来控制一个系统并不比使用鼠标点击按钮的方法复杂多少, 有时候会感觉思路更为清晰. (附: 初撸 Linux 的正确姿势)

 

远程登录

因为我们要在刚刚购买到的VPS里面进行这些事情, 所以首先要进行登录. 登录的方法就是用 ssh 连上去. 如果你用的是Windows系统, 则通过Xshell 5连接上去. 由于VPS官方默认给了我们一个Root帐号, 我们可以用来创建一个新的管理员帐号供自己使用, 也可以直接使用这个root帐号. 但是直接使用root帐号并不是一个好习惯哦!

关于如何在Ubuntu下面创建一个管理员帐号的方法, 很多文章都有介绍, 这里只给出命令:

请把<username>替换为你的用户名. 然后用下面命令给这个用户设定新密码:

设定好之后, 就可以断开ssh连接, 并重新以 ssh <username>@IP地址 的命令登录进VPS.

 

服务器端 - 安装

使用下面的命令安装我们需要的软件: ShadowSocks

然后写一个配置文件, 对shadowsocks进行设置. 在Linux下面, 对一个软件的设置, 几乎都是使用一个文本文件来进行的. 在文本文件里面写上你的配置, 这个软件就能按照你的配置来运行. 这一点和图形用户界面操作系统很不一样.

我们要在 /etc/ 这个目录下面新建一个 sss.json 文件, 然后编辑他. 我自己习惯用 vim 编辑器, 你也可以使用 nano 这样的编辑器. 所以命令如下:

进入编辑器以后, 把下列配置信息粘贴到这个文件里面:

说明:
"server_port"后跟一个 大于1024, 小于65535 的数字, 比如14000就很好. 最好不要用8388.
"password"后面跟一个密码, 这个密码我们后面要用到.

这样我们就安装好了. 这个安装过程很清晰的分成了两部, 一是从互联网上面下载并安装, 二是写一个配置文件对他如何运行进行设置.

 

服务器端 - 运行

运行只用一行命令即可

这时候 shadowsocks 就会在后台运行了. 如果想停止他的运行, 那么输入这个命令:

 

客户端 - 下载

下载地址: 下载点一  下载点二  下载点三

这三个下载点不一定都能打开, 打开你能打开的. 然后根据你平时使用的操作系统(比如 Windows) 选择相应的客户端进行下载. 我喜欢 gui 版本的, 因为可以用鼠标点按钮进行操作:)

 

客户端 - 配置

不同的客户端长的样子都不一样, 但是总的来说, 都要配置如下几个关键部分

  1. 服务器地址. 就是你的VPS的IP地址
  2. 服务器端口: 就是那个你设置的大于1024, 小于14000的那个数
  3. 密码: 你设置的密码
  4. 加密方式: aes-256-cfb

配置好后就可以运行了

 

客户端 - 使用

哎呀! 懒得写了, 网上对客户端的配置很多, 我给出一个精彩的链接

到了这里, 你就可以接入一个开放的互联网世界了.

 

Q & A

Q: 为什么用ShadowSocks, 而不是 L2TP-IPSec 或者 OpenVPN 之类?
A: 因为ShadowSocks最安全, 配置也比L2TP简单很多.

Q: 移动端需要root或者越狱吗?
A: 需要

Q: 能不能进行流量统计?
A: 可以通过iptables进行端口流量统计. 假设服务器开放的端口是 14000, 那么对应的开始监控流量命令为 sudo iptables -I OUTPUT -p tcp --sport 14000 相应的查询流量的命令为 sudo iptables -L -v -n | grep spts:14000

Q: 能不能配置不同的端口对应不同的密码?
A: 可以. 需要修改 /etc/sss.json 文件. 格式如下:

 

Q: 能不能进行端口限速?
A: 可以. 使用iptables令牌桶方法可以进行粗略限速, 配合使用tc可以进行精确限速. 参考文章

Q: 有没有这样的商业案例?
A: 有很多很多啊, 比如这个

 

谢谢

如果你看了本教程, 想要购买VPS进行实践学习, 希望你能通过本系列第一篇文章提供的链接进行注册购买 (并且

在promotion code填上: linode10

在referral code填上: 242da7f582d5afce52866f5a2c8ee1130ed35ee7), 对你我都有好处, 好人一生平安!

祝大家元旦快乐.

( 转载请注明: Jecvay Notes )

多达 48 条吐槽

  • boz
    2015/01/01

    楼主,请问您用的哪家的vps,看您的ip貌似是香港的

    • Fuck My Ass
      2015/01/01

      试试东京的linode吧, 一年600不贵

    • 2015/01/01

      我Linode, DigitalOcean的vps都用, 博客用的是 HengHost 的WebHosting.

  • tony123
    2015/01/05

    楼主,运行shadowsocks时遇到问题了,按照提供的步骤一步步做的,结果运行的时候提示我没有权限,这是咋回事?~$ ssserver -c /etc/sss.json -d startINFO: loading config from /etc/sss.json2015-01-04 22:19:27 ERROR [Errno 13] Permission denied: '/var/run/shadowsocks.pid'

    • tony123
      2015/01/05

      切换到root账号可以运行,但是管理员账号的时候就出现上面的错误

      • 2015/01/05

        -d start 这个参数是让程序以后台服务的形式运行, 这个参数让这条命令需要root权限.一个管理员账户在执行命令的时候默认是不带root权限的. 如果管理员想要执行一条需要root权限的命令, 可以在这条命令的前面加上sudo. 你试试这个:sudo ssserver -c /etc/sss.json -d start

  • Killer
    2015/01/07

    Linode服务器端重启自动运行如何设置?我在/etc/rc.local里加了 ssserver -c /etc/sss.json -d start 似乎不行?

    • 2015/01/07

      我使用的是 supervisor 这个工具. 你说的方法我没有试过, 但是我觉得应该是可以的. 有可能你需要给出ssserver的完整路径, 例如/usr/local/bin/ssserver -c /etc/sss.json -d start

  • 2015/01/08

    nice!

  • 2015/01/08

    谢谢楼主!最近准备买个vps练练手,做个网站啥的;一年600也不算太贵(我以为要1000多)因为,买vpn+apn+虚拟空间的钱,也差不多快一个vps的钱了~

    • 2015/01/08

      vps还是相当好玩的! 还可以做dns服务器, 或者把国外的dns加密传到国内, 用python或者ruby做网站也是虚拟空间无法完美解决的. 配置nginx负载均衡什么的都很好玩的.

  • Joe
    2015/01/09

    楼主遇到过被DDoS攻击的情况么

  • Joe
    2015/01/09

    楼主遇到过被DDoS攻击的情况么

  • 啊啊啊
    2015/01/11

    楼主,建议把最上面sss.json里配置中的,标记符号(..)去掉吧,照着打完,出现错误了。

  • 啊啊啊
    2015/01/11

    成功,谢谢

  • Randix
    2015/01/16

    有没有更好的VPS推荐,我电信100M 联通4G,想跑1080P 的Youtube以上,价格在150/month以内

    • 2015/01/16

      哇我没用过这么贵的! 我只能瞎说了: 我感觉香港的应该会快. 找个大一点的香港的主机商试试. 或者直接试试<曲径>

  • 士大夫
    2015/01/29

    请问能搭建成游戏VPN吗?

    • 2015/02/01

      如果游戏支持socks5的tcp代理就行.如果游戏支持http代理可以找相应的软件把socks5转为http代理. 有些shadowsocks客户端就支持哦.

  • HTRSTC
    2015/02/01

    小白的我按照教程一步一步来,捣鼓了半天也搞定了,谢谢。

  • 卧槽还要名字
    2015/02/10

    傻逼威仔~新年快乐~木哈哈哈哈~

    • Jecvay
      2015/02/10

      njt 西工大网络中心

    • 2015/02/10

      njt 西工大网络中心

      • ldldlr
        2016/06/28

        看到这里突然发现,兄弟你是西瓜大的??!!

  • jzeric
    2015/02/11

    请问我按你的方法设置了以后,dropbox可以正常使用了,后来自己又按知乎上的方法架设了一个VPN,VPN使用正常但dropbox又没法同步了。不知道是何原因?难道vpn和你这个方法有冲突吗?

    • 2015/02/11

      只要你配置的vpn的本地端口和shadowsocks客户端的本地端口不相同就不会冲突的

      • jzeric
        2015/02/11

        谢谢回答:) 那如何查询和修改这两个的本地端口了?我是按照知乎上这个帖子(http://www.zhihu.com/question/20113381)的第一个答案来设置的vpn,其中一部分的命令行如下:sudo ufw allow 22sudo ufw allow 1723sudo ufw enable这是不是说明vpn的本地端口为1723?在shadowsocks的server配置里面显示的proxy port为1080,是不是这个就是shadowsocks的本地端口?

  • James
    2015/02/28

    您好,我启动ss服务的时候出现了报错,[Errno 99] Cannot assign requested address ,请问大概是什么原因呢

  • le
    2015/03/01

    iphone要越狱?就这一条就不行

  • chen
    2015/06/02

    不能用支付宝吗,表示学生没有visa 和 paypal

  • chen
    2015/06/02

    mac如何设置

  • zouhw93
    2015/06/13

    LZ你好,已经在XP系统下配置完成Xshell 5环境,按照教程想创建一个新的用户,结果出现了无法识别的命令。一直很纠结死怎么回事,刚接触这种系统和命令感觉力不从心。Host 'lish-singapore.linode.com' resolved to 103.3.60.27.Connecting to 103.3.60.27:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Linux lish-singapore.linode.com 3.18.3-x86_64-linode51 #1 SMP Fri Jan 23 10:57:22 EST 2015 x86_64Linodes located in this data center:linode123XXX123 Singapore, SG [XXX@lish-singapore.linode.com]# useradd -s /bin/bash -mr abcdefgUnrecognized command.You may use 'list' to list Linodes or specify a Linode label to connect.

    • 2015/06/13

      你这个看起来没有登录进入 Ubuntu 系统, 而是进入了 Linode Shell (Lish). 我没有使用过这个 shell, 不知道你是什么情况.

    • 2015/06/13

      你可以在 xshell 使用这条命令进行连接 ssh root@103.3.60.27

  • 2015/06/13

    HI, 感谢你的分享, 已经成功了.似乎在火狐下还要对AutoProxy做些设置才能顺利FQ.只不过有些不解, 我使用的windows客户端每次打开来都会有System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:8123的错误, 似乎不影响使用, 这是为什么呢?另, 即使是全局模式也无法ping通yout*ube这些网站, 但是却能访问...同样觉得不解.望赐教.

    • 2015/06/13

      火狐不使用IE的代理, 所以要单独设置. 无论是全局模式还是pac模式本质都是设置了IE里面的Internet选项里面的代理服务器. 而cmd是不经过IE代理的, 所以ping是不通的.抛出的异常我不了解, 你可以换一个windows客户端试试(或者下个新/旧版本)

  • 2015/06/13

    顺便说一下博主如果是学生的话可以去弄Github education pack, 太超值了.

  • 2015/11/10

    网站做的好棒哦

  • twelife@163.com
    2016/01/26

    楼主帮我看看这个咯,运行OK,但是停止的时候提示未运行:
    ubuntu@ip-172-31-27-178:~$ sudo ssserver -c /etc/shadowsocks.json -d start
    INFO: loading config from /etc/shadowsocks.json
    2016-01-26 07:08:14 INFO loading libcrypto from libcrypto.so.1.0.0
    started
    ubuntu@ip-172-31-27-178:~$ sudo ssserver -c /etc/shadowsocks.json -d stop
    INFO: loading config from /etc/shadowsocks.json
    2016-01-26 07:09:50 ERROR not running

  • Byron
    2016/03/10

    楼主 ss 已经配置好,使用 Chrome 扩展 SwitchOmega + shadowsocks-Qt5 在 ubuntu 14.04 上可以访问 google, 访问不了 youtube 是怎么回事

  • 无奈啊
    2016/11/09

    楼主我按照你说的方式进行了搭建,sss.json运行后我开启代理依旧翻墙失败,求解

说几句