科学上网

有时查阅资料不是很方便,为了科学上网,买了一台廉价的海外vps,为了不同场景和设备都能较容易的科学访问网站,部署了Shadowsocks和pptp服务,把部署的过程介绍下。
部署Shadowsocks服务:
Shadowsocks服务的安装可以参考github上提供的安装说明。vps的系统是CentOS6,新的机器很多的依赖软件都没有配置起来会繁琐一点,具体如下:
1、用yum或pip先装好依赖环境,最后安装Shadowsocks服务

[root@default ~]# yum install python-setuptools libevent python-devel gcc openssl-devel swig
[root@default ~]# wget https://pypi.python.org/packages/source/p/pip/pip-6.0.tar.gz --no-check-certificate
[root@default ~]# tar xvfz pip-6.0.tar.gz
[root@default ~]# cd pip-6.0
[root@default pip-6.0]# python setup.py build
[root@default pip-6.0]# python setup.py install
[root@default pip-6.0]# pip install gevent
[root@default pip-6.0]# pip install M2Crypto
[root@default pip-6.0]# pip install shadowsocks

2、配置、启动服务

[root@default pip-6.0]# mkdir /usr/local/shadowsocks
[root@default pip-6.0]# cd /usr/local/shadowsocks
#编辑配置文件shadowsocks.json
[root@default shadowsocks]# cat shadowsocks.json
{
    "server":"服务器IP地址(例如192.192.192.192)",
    "server_port":服务器监听端口(例如8688),
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"访问密码(例如kdjfiwfs123757)",
    "timeout":300,
    "method":"aes-256-cfb", #加密方式,建议采用aes-256-cfb
    "fast_open": false
}
#防火墙开启上面服务器监听端口(showdowsocks会监听tcp和udp两种协议的端口)
iptables -A INPUT -p tcp --destination-port 8688 -j ACCEPT
iptables -A INPUT -p udp --destination-port 8688 -j ACCEPT
#启动服务
[root@default shadowsocks]# nohup /usr/bin/ssserver -c /usr/local/shadowsocks/shadowsocks.json &

3、客服端配置
shadowsocks是多平台应用,不同平台的客户端下载参见网站http://shadowsocks.cn/
以windows 7为例,shadowsocks客户端的配置文件config.json类似如下:

{
    "server":"192.192.192.192",
    "server_port":8688,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"kdjfiwfs123757",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

启动客户端后,如上配置会监听本地127.0.0.1的1080端口,此时还需要一个socks v5代理的软件监听本地的1080端口,系统代理可以用Proxifier,浏览器代理可以用SwitchySharp插件。
之后将shadowsocks服务加入到开机启动,以后就不要每次都手动打开了。

部署pptp服务:
1、先安装epel源,然后安装ppp、pptpd服务

[root@default ~]# wget -c http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@default ~]# rpm -ivh epel-release-6-8.noarch.rpm
[root@default ~]# yum clean all
[root@default ~]# yum makecache
[root@default ~]# yum install ppp
[root@default ~]# yum install pptpd

2、配置ppp

[root@default ~]# grep -Ev "^#|^$" /etc/ppp/options.pptpd
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
[root@default ~]#

3、添加pptp用户

[root@default ~]# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client   server  secret          IP addresses
zhangshan pptpd   'dkdkkdje123'    *
[root@default ~]#

4、配置pptpd

[root@default ~]# grep -Ev "^#|^$" /etc/pptpd.conf
option /etc/ppp/options.pptpd
logwtmp
#不要和物理网卡处于同一个网段即可
localip 192.168.10.1
remoteip 192.168.10.222-238
[root@default ~]#

5、开启转发并配置iptables(网卡是venet0)

#开启网络转发功能
[root@default ~]# grep "net.ipv4.ip_forward" /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@default ~]# sysctl -p
#防火墙配置如下
iptables -A INPUT -p tcp --destination-port 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o venet0 -s 192.168.10.0/24 -j MASQUERADE
iptables -A FORWARD -o venet0 -j ACCEPT
iptables -A FORWARD -i venet0 -j ACCEPT

6、启动pptpd服务即可

[root@default ~]# /etc/init.d/pptpd start

7、pptp的客服端一般的系统都集成了,使用简单方便,这也是除了部署shadowsocks服务还要部署pptp的原因了。
文章出处:http://www.xiaomastack.com/2015/01/14/科学上网/

14 Comments

 Add your comment
  1. /etc/pptpd.conf这个文件可以设置网关上网吗?

  2. 这个不是太清楚^_^!!!

  3. 我自己在vm测试,vpn连通后为什么只能打开新浪网站其他网站是不能打开?浏览新浪网站的时候服务器ppp: compressor dropped pkt,这个提示。
    你这个文章是转发还是自己亲自验证过的?

  4. 可以加你QQ交流吗?

  5. 我们公司和我自己海外的机器都有用,没有什么问题。是不是DNS解析的问题,pppd配置中使用是本地网络的DNS服务器还是pppd给你分配的DNS服务器,pppd默认分配的DNS服务器是谷歌的貌似,国内访问不到。

  6. 我是pppd分配的,改了本地的DNS地址

  7. ppp: compressor dropped pkt

  8. ppp: compressor dropped pkt是什么错误?

  9. http://winter2014.blog.51cto.com/151632/1572209 你可以参考下这篇blog试试。

  10. Shadowsocks,不装pptp vpn可以使用吗?
    Shadowsocks是不是通过vpn才能使用的?

  11. Shadowsocks和pptp是两种不同的技术,严格来讲一个是代理一个是vpn,我装这两个主要是为了互补,基本任何环境都能使用。

  12. 如何禁止vpn账号并发?

  13. Shadowsocks是不是只能用在浏览器代理?
    Shadowsocks代理能不能用在其他方面?比如是java应用程序上

  14. 不是的,Shadowsocks用的是SOCK5代理协议,支持这个协议的都可以,比如Proxifier,不一定是浏览器。

发表评论:

你的电子邮件地址将不会被公开.

4 × = 8