blog
blog copied to clipboard
使用国外vps简单科学上网
注意:本文只为了看一些被墙的文献,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
添加一个情景

也就是在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通信,不必担心断线问题