Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用国外vps简单科学上网 #47

Open
chunpu opened this issue Jan 10, 2015 · 0 comments
Open

使用国外vps简单科学上网 #47

chunpu opened this issue Jan 10, 2015 · 0 comments
Labels

Comments

@chunpu
Copy link
Owner

chunpu commented Jan 10, 2015

注意:本文只为了看一些被墙的文献,18岁以下请主动关闭此页

这里将介绍3种使用国外vps科学上网的方法,分别是vpn, ssh, shadowsocks

首先是vpn翻墙,vpn一般是全局科学上网,不管是iPhone还是Android还是windows都不需要安装任何其他软件就可以翻*墙,对客户端来说是最方便的方案

服务端部署也不麻烦(有了下文的一键脚本后..),就3步

1 - 下载并运行脚本

wget http://soft.yzs.me/pptpd.sh;sh pptpd.sh

2 - 按脚本提示填写ip和网卡

Which IP is your server IP:
IP:(就是你服务器IP)

Please input the netdriver of your server:
Net Driver:(你用了哪张网卡,一般都是eth0,阿里云貌似是eth1)

再填上用户名和密码,比如都用vpn

运行lsof -i:1723

看到如下结果(有pptpd和1723)就算对了

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
pptpd   1614 root    6u  IPv4   9988      0t0  TCP *:1723 (LISTEN)

为了感谢该脚本(主要是防止以后链接失效), 决定把脚本贴进来。。

#!/bin/bash

get_char()

        {

        SAVEDSTTY=`stty -g`

        stty -echo

        stty cbreak

        dd if=/dev/tty bs=1 count=1 2> /dev/null

        stty -raw

        stty echo

        stty $SAVEDSTTY

        }

clear

ip=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
echo "$ip"

        echo "==========================="

serverip=""
while [ "$serverip" = "" ]; do
        echo "Which IP is your server IP:"
        read -p"IP:"  serverip
done
        echo "==========================="
        echo "Server IP:$serverip"
        echo "==========================="

        echo "==========================="

ifconfig

netdriver=""
while [ "$netdriver" = "" ]; do
        echo "Please input the netdriver of your server:"
        read -p"Net Driver:"  netdriver
done
        echo "==========================="
        echo "Net Driver:$netdriver"
        echo "==========================="

username=""
while [ "$username" = "" ]; do
        echo "Please input the username of PPTP:"
        read -p"Username:"  username
done
        echo "==========================="
        echo "PPTP Username:$username"
        echo "==========================="

password=""
while [ "$password" = "" ]; do
        echo "Please input the password of PPTP:"
        read -p"Password:"  password
done
        echo "==========================="
        echo "PPTP Password:$password"
        echo "==========================="

        echo "Press any key to continue."
        char=`get_char`
apt-get -y update
apt-get -y install pptpd
sed -i "s#\#localip 192.168.0.1#localip 192.168.0.1#g" /etc/pptpd.conf
sed -i "s#\#remoteip 192.168.0.234-238,192.168.0.245#remoteip 192.168.0.234-238,192.168.0.245#g" /etc/pptpd.conf
wget http://soft.yzs.me/pptpd-options -O /etc/ppp/pptpd-options
touch /var/log/pptpd.log
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $netdriver -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $netdriver -j SNAT --to-source $serverip
echo "$username * $password *">>/etc/ppp/chap-secrets
sed -i "1i\iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $netdriver -j MASQUERADE;iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $netdriver -j SNAT --to-source $serverip" /etc/rc.local
service pptpd restart

3 - 在windows或android或iphone上添加vpn连接, 结束!


接下来介绍普通ssh科学上网方法

ssh的方法不需要在服务器上做任何设置,因为一般vps都会默认开启sshd,我们同样只需要3步即可科学上网

1 - 下载putty(下载链接)

2 - 编写一个一行命令的脚本kexueshangwang.bat, 放在putty同路径下

putty.exe -D 1080 root@你vps的IP

双击执行并登陆

3 - 安装proxy SwitchySharp

chrome插件地址

添加一个情景

科学上网

也就是在socks中填上ip: 127.0.0.1, 端口: 1080, 刚才-D后面的数字

启用这个情景,看看是不是能跑出去了


最后介绍shadowsocks科学上网的方法

shadowsocks也是目前流行所趋,他的优点,我也不大清楚,不过至少他不用建一个单独给人上网的linux账号,而且一般shadowsocks都会用上epoll的event库,性能应该也大大提升。也就是说shadowsocks是用来大批量科学上网的方法(卖¥)

方法同样简单,不过此处只介绍nodejs方法 (谁让nodejs是最牛x的平台呢,同样是3步

1 - 分别在客户端和vps端安装nodejs

window直接在nodejs官网下载安装即可

ubuntu更容易, apt-get install nodejs

2 - 在客户端和vps端分别安装shadowsocks的全局程序

npm install -g shadowsocks

此命令是增加两个全局命令(在命令行可以直接用的命令),一个是ssserver,另一个是sslocal

我们需要修改服务端和vps端的配置文件,其地址在全局安装的时候会显示出来

修改服务端的config.json, 就是把config.json中的ip从127.0.0.1改成0.0.0.0

在客户端我们也需要修改配置文件config.json, 把ip从127.0.0.1改成你的vps外网ip

3 - 启动

在服务端直接执行ssserver即可,看到如下即成功

1 Feb 03:51:23 - UDP server listening 0.0.0.0:8388
1 Feb 03:51:23 - server listening at 0.0.0.0:8388

在客户端执行sslocal

然后做端口代理转发即可,具体步骤同方法2普通ssh上网步骤3

据说shadowsocks使用udp通信,不必担心断线问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant