[攻略] 在 VPS 上架设个人 PPTP 模式 VPN

楼主: takahashikag (那来自某岛的苏州军部长)   2015-06-10 00:25:50
基本上文长,直接用网页看可以到 Blogger:
http://takahashi65.blogspot.tw/2015/06/vultr-vps-pptp-vpn.html
==
这篇文章要讲述的,是如何在 VULTR VPS 上以 Ubuntu 14.04 LTS 架设 PPTP VPN 服务
==
首先,得感谢某个三不五时就“大量猫空袭”的日本网页游戏,让我在 PHP、CSS 与 HTML
的世界之外点了一堆 Linux 技能,还顺便实作了 VPS 上架设 PPTP VPN 的操作,这篇文
章主要是关于如何在 VPS,也就是 Virtual private server,也就是虚拟专用服务器上架
设 PPTP 服务的操作
==
在选择 VPS 厂商方面,我本来会推荐 Linode 这家异常超值的厂商,无奈它的东京机房已
经售罄许久,我在六月初曾经用开一个位在新加坡机房的单位,用延迟过高的理由要求搬
迁到东京,藉以回避无论是老客户还是新客户都无法购买东京机房单位的限制,无奈这招
也行不通了,目前只能等它们开通新的东京机房( Linode 在本年度的展望报告中有提及
到),目前我选择的 VPS 厂商是 VULTR,这家厂商也有提供位在东京机房的单位,且除了
信用卡之外,还支援 PayPal 与比特币储值
==
https://c1.staticflickr.com/9/8879/18384523980_881d9df158_b.jpg
注册后首先是储值,借由旧客户邀请的方式可以获得五镁的奖励,而旧客户邀请新客户也
可以获得十镁的奖励
https://c1.staticflickr.com/1/328/18567743502_8440e0b9a2_b.jpg
接着选择部属 VPS 单位
https://c1.staticflickr.com/9/8845/18574282521_cab24424b8_b.jpg
选择 VPS 单位的规格,由于 VULTR 在各地机房规格的关系,如东京机房不会给你 2TB 流
量,这点之后会说
https://c1.staticflickr.com/9/8828/18386056829_21931451fe_b.jpg
部属后会进行安装,大约三十秒就会显示完成,但是要稍等一会才可以远端操作
https://c1.staticflickr.com/1/391/18384573540_bf18b6275e_b.jpg
虽然说 VULTR 支援 noVNC 这种 KVM,但我惯用终端机连线到 VPS 上
https://c1.staticflickr.com/1/412/18384640200_11591c2dc5_b.jpg
登入方式是“ssh root@VPS 的网络位址”,输入管理密码后以 root 权限登入
==
这边要讲一下,一样是十镁方案的话,Linode 跟 VULTR 的差异主要在频宽跟 IP 位址上
==
首先是 VULTR 东京机房没有 2TB XFER,只有 400GB XFER,不过两家一样都只算流出而不
算流入(架设 VPN 的话,就是只算出 VPS 的流量,对于架设连线上是双向流动的 VPN 服
务来说是很大的优点),一样的价格只买到五分之一的流量想必不是很好受,但真的买不
到 Linode 的东京机房啊!日本国内流量不限的 VPS 厂商也限制日本国内购买而已(有绑
定日本信用卡与住址、电话号码),而且目前 VULTR 十镁方案打折成八镁,在更好的方案
出现,或是 Linode 的新东京机房上线前,想买到日本地区 VPS 只能先用 VULTR,而亚马
逊的 AWS EC2 虽然说第一年给你免费(以 t2.micro 方案来说)试用,但限制一个月七百
五十小时单位执行时间与 15GB 流量很容易就爆掉,而爆掉之后的 Amazon EC2 会瞬间变
成日本地区 VPS 中最高昂的服务厂商,看到信用卡帐单你会崩溃
==
再来是 IP 位址的问题,不论是 Linode 或 Amazon EC2 服务,在建立 VPS 时就会发给你
日本 IP,而 VULTR 由于所购买的 IP 位址区段是 Choopa.Inc 与 GameServer.com 等厂
商共有(这三者某种程度上其实是一体的),因此会有一段时间会被判定成美国 IP,而在
GeoIP 单位的数据库更新之前基本上不会改变,而这个更新所需要的时间是个很暧昧的“
过几天”,好一点可能一两周以内就会更新,惨一点就是以月来计算了,不过这是网络架
构的问题,无解
==
回到设定 PPTP 服务的话题,首先是安装 PPTP 服务
指令是“sudo apt-get install pptpd”,其实以 root 登入的话可以不用打 sudo 啦,
当初太累忘了,不过真要进 root 建议照表操课,不然会把系统炸掉
==
https://c1.staticflickr.com/1/488/17949640084_42a94d7095_b.jpg
接着调整 pptpd.conf,输入“sudo nano /etc/pptpd.conf”
https://c1.staticflickr.com/9/8840/18574348901_2fab0f539e_b.jpg
进入 pptpd.conf 进行编辑,移到最下面
https://c1.staticflickr.com/9/8838/18545898606_0f9cb8b3e7_b.jpg
设定 IP 位址,“localip 192.168.2.25 ”是 VPS 内部出口
而“remoteip 192.168.2.1-20”则是提供给用户连线
https://c1.staticflickr.com/1/480/18572305125_605ce6f009_b.jpg
Crtl+X 结束编辑,按下 Y 后直接 Enter 原档案名称存盘,
接下来是“/etc/ppp/chap-secrets”这个档案
https://c1.staticflickr.com/9/8893/18572327365_2173982c52_b.jpg
“/etc/ppp/chap-secrets”用于连线帐号设定,
用空格分开的分别是使用者帐号、服务名称(默认 pptpd )、密码与连线 IP
https://c1.staticflickr.com/9/8888/18384661690_d68ec40494_b.jpg
接着是“/etc/ppp/options”
https://c1.staticflickr.com/1/266/18572327345_349e31e576_b.jpg
这里可以看到服务名称,就是用在“/etc/ppp/chap-secrets”中 #server 项目的那个
https://c1.staticflickr.com/1/550/17949662474_4794d5bddd_b.jpg
在“/etc/ppp/options”进行 DNS 的设定,
以较不容易被污染的 Google Public DNS 为设定
https://c1.staticflickr.com/1/554/18384526468_e915f4ce3b_b.jpg
以“sudo service pptpd restart”指令让 PPTP 服务重新启动
https://c1.staticflickr.com/1/492/18386178079_c2f88466d0_b.jpg
接着会回送结果,“OK”就是确认重新启动
https://c1.staticflickr.com/9/8859/18545954366_b1b247a203_b.jpg
再来是“/etc/sysctl.conf”
https://c1.staticflickr.com/1/418/18567865102_6bf4e920df_b.jpg
将该行的注解 # 删去,启动设定伺服端 IPv4 协定封包的绕送,
让使用者可以借由 VPS 主机上网
https://c1.staticflickr.com/1/459/18574403341_4308030f9b_b.jpg
“sysctl -p”重启
https://c1.staticflickr.com/1/478/18386177829_c09dfebe44_b.jpg
确认回送“net.ipv4.ip_forward=1”则成功
https://c1.staticflickr.com/1/438/18567918732_67059253d2_b.jpg
设定“Iptables”,编辑路由表以确认绕送规则
https://c1.staticflickr.com/1/532/18574456981_e3dd4959f7_b.jpg
参数
“sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE”
,绕送整个 PPTP 服务的封包
https://c1.staticflickr.com/1/499/18567918402_7fec78b85d_b.jpg
但是上述参数重启 VPS 的话会消失 所以要编辑“/etc/rc.local”
https://c1.staticflickr.com/1/380/18572412675_c5f5c0ea6a_b.jpg
在 exit 0 前一行输入
“iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE”
https://c1.staticflickr.com/1/400/17951738103_5ee3457e0a_b.jpg
接着就可以登出了,不放心可以再让 PPTP 服务重新启动一次
https://c1.staticflickr.com/9/8835/18574688371_455e4edd6b_b.jpg
再来就是本机端的 VPN 设定,这里用随边一张撷图作示范,
服务器位址填入 VPS 的 IP 位址,而帐户、密码就是刚才设定的那些
==
基本上这样大费周章购买 VPS 来架设 VPN 有两大优点,一是 VPN 是你自己的,管理权限
在你自己手上,安全性方面只要不是你设定失误或是软件上的臭虫,理论的安全性与可信
任度是高于付费 VPN,更遑论免费的 VPN 服务,二是由少数几个人一起租用同一台 VPS
运作 VPN 不只可以分摊费用,也可以避免大量使用者使用同一台 VPN 时被游戏营运厂商
列入黑名单的可能性 (理论
==
https://c1.staticflickr.com/1/510/18386242249_71f8217eb2_b.jpg
话说 VULTR 有提供 noVNC 的 KVM 服务,不过 VPS 上的作业系统基本上都是靠终端机在
跑,除非装 X Window 图形接口
==
基本上安装 Ubuntu 14.04 LTS 的 VPS 架设方式都是这样,几乎可以套用在任何运作 Xen
的 VPS 上
==
刚刚研究出来了,以查IP网站“http://www.whatismyip.com.tw/”为范例,
其位址“106.187.42.221”,在 OS X 上撰写如下,先将同时将“透过VPN 连线传送所有
流量”取消勾选,接着在终端机上输入下列这个,会问管理密码
sudo route add -net 106.187.42.221 -netmask 255.255.255.255 <VPN 本地的IP>或是
sudo route add -net 106.187.42.221 -netmask 255.255.255.255 -interface ppp0
ppp0是 OS X 默认的 VPN 闸口,用 ppp0 就不用每次重连 VPN 时删掉旧的,重打新的路
由指令了,如果看到网站的结果是 VPN 的端口,你就成功了,输入下列即可删除这条规则
sudo route delete -net 106.187.42.221 -netmask 255.255.255.255 <VPN 本地的IP>或
sudo route delete -net 106.187.42.221 -netmask 255.255.255.255 -interface ppp0
再来有两个问题,一是把 203.x.x.x 都包进去的话 CIDR 要如何撰写?二是在 Windows
上该如何撰写?恳请解惑
作者: dderfken (托雷迪亞(鬍鬚張))   2015-06-10 00:32:00
太专业了(捏眉
作者: keinsacer (凯因)   2015-06-10 00:33:00
赶快推文,要不然人家会说我们看不懂
作者: doogdoog (登出)   2015-06-10 00:34:00
这是中文吗?
作者: weiyilan (ヒメアマ)   2015-06-10 00:35:00
游戏真是增进电脑技能的最好方法
作者: kira925 (1 2 3 4 疾风炭)   2015-06-10 00:36:00
有点..错版老实说lol
作者: dderfken (托雷迪亞(鬍鬚張))   2015-06-10 00:37:00
没办法 DMM水量还不够吧
作者: norta (moonhorn)   2015-06-10 00:38:00
可惜AWS不能这样玩我跟AWS比较熟
作者: Mosochen   2015-06-10 00:39:00
我该写一份M$Azure Windows Server SSTP VPN版本的吗
作者: Akaz (Akaz)   2015-06-10 00:39:00
建议不要开在192.168.0.x 这样发配到client端的IP很可能跟原本的局域网路对撞
作者: tym7482 (Max)   2015-06-10 00:41:00
嗯嗯跟我想的一样
作者: Akaz (Akaz)   2015-06-10 00:41:00
喔我看到是开在192.168.2了 Orz 后面文字的地方似乎打成.0
作者: vincent0728 (Vincent)   2015-06-10 00:41:00
推好心, 但是我看不懂orz
作者: Akaz (Akaz)   2015-06-10 00:43:00
OSX的route好像可以用-interface ppp0指定?
作者: OxISBE (0x15BE)   2015-06-10 00:55:00
用 SSH Tunnel 就够了吧,特地设定 VPN 有点自找麻烦
作者: Akaz (Akaz)   2015-06-10 00:57:00
Windows最近才加原生ssh 这可能也没有比较容易...
作者: Mosochen   2015-06-10 00:59:00
Azure的ENDPOINT只开TCP/IP PPTP的GRE被封了所以..(r
作者: OxISBE (0x15BE)   2015-06-10 00:59:00
有 PuTTY ,也有 OpenSSH ,绝对比较简单
作者: Mosochen   2015-06-10 01:00:00
容我我研究一下
作者: good5209   2015-06-10 01:02:00
先推详细教学,游戏真是让人学习任何事的好动力不过用root登入ssh、port开在默认22,这两件事很危险
作者: OxISBE (0x15BE)   2015-06-10 01:03:00
文中不是有用 SSH 连到 VPS ?加上 -D <port> 就可以在local 开一个 SOCKS5 Proxy
作者: Kenqr (function(){})()   2015-06-10 01:06:00
作者: ly2314 (ly2314)   2015-06-10 01:07:00
Azure就直接WinServer+RRAS架设L2TP就可以了
作者: OxISBE (0x15BE)   2015-06-10 01:07:00
如楼上所说,教新手这样用实在很危险,我 VPS 就被打过
作者: Akaz (Akaz)   2015-06-10 01:07:00
route add 203.x.0.0/16 -interface ppp0 这样呢?
作者: icons   2015-06-10 01:26:00
PPTP姑且比较简单,需不需要在文章中提醒密码强度?
作者: snaketsai (さいでんし)   2015-06-10 01:26:00
请不要教新手用root登入...OpenSSH有Tun/Tap可以开,两边都是UNIX可以用这个做VPN另外建议上fail2ban,不然就改port
作者: a840504 (懒懒的猫^^~)   2015-06-10 01:32:00
其实比较在意频宽 现在肮赖game频宽都吃很大
作者: snaketsai (さいでんし)   2015-06-10 01:34:00
putty开socks proxy也不难,也有command line modeputty.exe --ssh -D [port] username@host
作者: final0724 (ding)   2015-06-10 02:29:00
推专业
作者: lolicat (猫雨果)   2015-06-10 03:45:00
...看不懂= ="...太难了...
作者: sengetsu (Sengetsu)   2015-06-10 05:32:00
好像很厉害 先推个
作者: tsub (tsub)   2015-06-10 06:39:00
推专业
作者: Sechslee (キタ━━(゚∀゚)━━!!)   2015-06-10 07:08:00
看不懂还是推
作者: kuojames2580 (干干干干干)   2015-06-10 07:18:00
完全看不懂
作者: caseyml   2015-06-10 08:52:00
我今年一月还买的到LINODE的东京VPS,不过我是架ANONYMOUS PROXY来用比较方便
作者: kigipaul (KiGiPaul)   2015-06-10 10:43:00
LINODE 线路不太稳 晚上有时候会风狂掉包之前用过免费EC2 如果只有将舰これ流量导过去 15G不会爆只是现在VPS除了VPN之外 还有其他服务 流量就不够了
作者: yukicon (长门控)   2015-06-10 10:45:00
太难了,我决定放弃专利法
作者: kigipaul (KiGiPaul)   2015-06-10 10:46:00
EC2的时候 是四个人共用 一个月8G快10G而已补上 我是架 OpenVPN 还有其他东西需要VPN
作者: aaaaooo (路过乡民)   2015-06-10 11:45:00
如果只有自己用还是架proxy比较有弹性
作者: Xopowo (哈拉秀)   2015-06-10 15:43:00
推一下﹐虽然我觉得烤饼干就足以解决问题...
作者: kigipaul (KiGiPaul)   2015-06-10 18:59:00
前阵子测Azure 台湾到日本会绕到香港 所以延迟多两倍Linode 4x ms/Azure 东京8x ms, 大阪 9x ms补充: 我是用hinet连的
作者: Downager (Mr.C)   2015-06-10 19:40:00
前阵子登陆信用卡有送50USD 不知道还有没有

Links booklink

Contact Us: admin [ a t ] ucptt.com