b - kang000feng/Vultr-SS-Firewall GitHub Wiki
翻墙教程
KEYWORDS/关键字:翻墙 Shadowsocks SS Vultr VPN VPS Fail2ban iptables ssh MAC OS X Windows
欢迎转载,请附上链接
https://github.com/kang000feng/Vultr-SS-Firewall/wiki
如有不清楚或出现错误,请在https://github.com/kang000feng/Vultr-SS-Firewall/issues 留言,记得附上错误的相关信息
本超速科学上网教程可以:
0障碍 番羽 土啬
上网速度满速,10M 可以看youtube 1080P,50M可以看4K
服务器端安全性高
支持手机,电脑等各种终端
如嫌麻烦,可直接下拉到底,加群购买,或者在https://github.com/kang000feng/Vultr-SS-Firewall/issues 内留下邮箱
需要准备的材料有:
1、一张支持美元$的信用卡或普通信用卡或者普通带银联标识的借记卡
本教程的VPS服务商以Vultr为例,系统为Centos 7 64位,python 2.7.8。最终效果为能够跑满用户的本地带宽,10M的网速表现为流程观看Youtube 1080P,无暂停。主要步骤为:
1、注册Vultr,选择支付方式,选定套餐5$每月,每月1000G的流量,部署VPS
2、建立防火墙,设置非ROOT账户(一下简称A),赋予sudo权限,禁止ROOT账户用密码,用凭证(SSH Key)登陆等措施。最终实现用SSH Key登陆A,必要时可用sudo su转到ROOT账户,确保自己vps的安全。
3、在VPS和本地电脑上部署shadowsocks(用来科学上网)
4、在VPS和本地电脑上部署Finaspeed(用来加速)
教程正式开始:
注册、支付:
1、 注册Paypal(有10$的新用户客户体验奖励)
以下以带visa标识的信用卡为例,其他卡等同
选Paypal是可以避免信用卡盗刷,万一被盗刷,Paypal的赔付速度也是很快的)注册Paypal时选择买家(外币转换手续费不用你支付,由卖家支付),绑定信用卡 /借记卡,在我的账户中上方可以看到账户状态,显示未认证(找不到的同学用ctrl+f搜索“未认证”),进行认证,绑定你的信用卡 /借记卡,Palpay会从你的信用卡 /借记卡扣除小额的费用,等2-3天美元账单入账后,你会从入账单中看到4 位数的 code,在Paypal中输入4 位数的 code就认证完成了
绑定完信用卡之后,打客服电话, https://www.paypal.com/selfhelp/contact/call 输入自己的动态识别码。接通之后问先客服一些的问题,比如外币消费的币种是什么?外币转换的费用怎么计算?用信用卡的话什么时候记账?用paypal却信用卡被盗刷了怎么办?等等。越详细越专业越好,同时客服会看你的账户状态,有没有什么违规,新用户一般是ok的。你要问的问题都问清楚了后,直接问他,为了客户体验,本人能不能申请一个10$的红包,谢谢。(态度要好,礼貌用语要用足),如果她同意了,向他询问能否直接打到自己的账户余额,一般都会同意,等10分钟就到Paypal账上了,这样就没有使用时间限制了。
注册Vultr(有50$的优惠券 或者 50$的现金)
点击
http://www.vultr.com/?ref=6920741-3B
进入官网,点sign up 注册
支付方式选择Palpay(需要预存10$ )。
这样一共就有免费的60$,可以用12个月
部署:
2、支付完毕后,回到Vulrt的界面,点击右侧的+号,deploy一个新的VPS(虚拟服务器)。名字自己取,IP选择日本,操作系统选择CentOS 7,套餐选5$一个月的。点生成,之后跳转到管理页面,当显示绿色的running时,该VPS就部署好了,然后你注册的邮箱可以看到VPS的IP,在VPS管理页面点那个眼睛,可以看到你的ROOT账户的密码。
设置安全措施:
3、windows 按win+R,打开CMD,OS X打开terminal,
此是CMD_1或terminal_1
ssh root@IP_address #利用SSH登陆 ROOT账户,然后输入yes,输入密码, #当光标变成[ROOT@vultr ~]就说明当前你用ROOT账户登录VPS成功, #通过@vultr 前的字母来判定当前是哪个账户
useradd A #建立非ROOT账户,A
passwd A #为A设置密码,输入两次,此时ROOT账户和非ROOT账户都设置成功了, #在ROOT账户下可利用su A转到非ROOT账户
echo -e "\nA ALL=(ALL) ALL\n" >> /etc/sudoers tail -3 /etc/sudoers #赋予A sudo 权限 #在A账户下利用 sudo su 可以转到ROOT账户 #利用control+D来推出账户
yum install iptables-services #安装防火墙 4、WINdows 按win+R,打开CMD,OS X打开terminal,
此是CMD_2或terminal_2,为A账户设置SSH Key
ssh-keygen -t rsa #在本地生成SSH Key 密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/user/.ssh/id_rsa): #回车,路径默认为括号中的内容
Created directory '/user/.ssh '
Enter passphrase (empty for no passphrase): #输入调用私钥时需要的密码
Enter same passphrase again: #确认密码
Your identification has been saved in /user/.ssh /id_rsa. #私钥 地址 Your public key has been saved in /user/.ssh /id_rsa.pub. #公钥 地址 The key fingerprint is: 05:71:53:92:96:ba:53:20:55:15:7e:5d:59:85:32:e4 root@test The key's randomart image is: +--[ RSA 2048]----+ | o o .. | | . o oo.+ . | | o.+... = | | ...o | | o S | | . | | | | | +-----------------+
chmod 700 /.ssh
#对/.ssh设置700权限,这里不赘述权限相关的内容,有兴趣的同学可以自己查资料
chmod 600 /user/.ssh /id_rsa #对私钥赋予 600 的权限
#上传公钥(/user/.ssh /id_rsa.pub)到VPS
brew install ssh-copy-id #安装ssh-copy-id工具
ssh-copy-id -i /user/.ssh /id_rsa.pub A@IP_address #把公钥 /user/.ssh /id_rsa.pub #上传到账户 A 中的 /home/A/.ssh/authorized_keys
The authenticity of host 'XXXXXX (XXXXXXX)' can't be established. RSA key fingerprint is XXXXXXXXXXXXXXXXXXXXXXXXXXXXX Are you sure you want to continue connecting (yes/no)? #输入yes
Warning: Permanently added 'XXXXXXXX' (RSA) to the list of known hosts. user@XXXXXXXX's password: Now try logging into the machine, with "ssh 'user@XXXXXX'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. 5、设置公钥权限
chmod 400 /home/A/.ssh/authorized_keys #将authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限
chattr +i /home/A/.ssh/authorized_keys #保证 authorized_keys 的权限不会被改掉
chattr +i /home/A/.ssh #设置 ~./ssh 的 immutable 位权限, #防止重命名 ~/.ssh ,然后新建新的 ~/.ssh 目录和 authorized_keys 文件 攥改密码 6、新建一个CMD或terminal,检验A是否能够用SSHKey登陆,因为SSH可重复登陆VPS,所以不用关闭原有的CMD terminal
ssh -i /Users/.ssh/id_rsa A@XXXXX #尝试登陆,若成功就关闭CMD 7、转回CMD_1或terminal_1
vi /etc/ssh/sshd_config #编辑 config 文件,按i编辑
利用滚轮下翻,确保各条目所示的状态和教程对应(去掉注释#) RSAAuthentication yes #允许 RSA 认证 PubkeyAuthentication yes #允许公钥认证 PermitRootLogin no #禁止 ROOT 通过SSH登陆 PermitEmptyPasswords no #禁止空密码登陆 PasswordAuthentication no #禁止密码登陆 ChallengeResponseAuthentication no # 禁止使用任何的密码登陆 修改端口, 将 #Port 22 改为 Port XXXX #改掉默认端口
按 esc 退出编辑,输入:wq #保存并退出 sshd_config
chkconfig iptables on #将 iptables 加入到系统服务,随系统启动而启动 service iptables start #直接启动 iptables 服务
iptables -A INPUT -p tcp --dport XXXX -j ACCEPT iptables -I OUTPUT -p tcp --sport XXXX -j ACCEPT #开放刚才改掉的端口,以免以后无法登陆A账户和ROOT账户
service iptables save #保存
#iptables命令示例 #Iptables -D INPUT 5 #删除INPUT 中第五条规则 #Iptables -I INPUT 6 #新建规则插入到INPUT中 为第6条
service sshd restart ##重启 SSH 8 、在本机设置 config 文件方便 SSH-Key 登陆,转回CMD_2或terminal_2
vi ~/.ssh/config #在私钥所在的.ssh 文件夹内新建一个 config 文件
按 i 编辑,复制以下内容 Host vps #这个名字随意,感觉像调用函数 HostName IP_address #IP 地址,即VPS的域名 Port XXXXX #服务器端开放的 ssh 端口,第 7 步中改的端口 User A #登录的用户名 IdentityFile ~/.ssh/ id_rsa #使用的密钥文件密钥文件,本地私钥地址
按 esc 退出编辑,输入:wq 退出并保存。
ssh vps #输入ssh vps来验证能否登陆A 9、设置fail2ban,防止暴力破解
sudo su #输密码,转回ROOT
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install fail2ban #安装fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local #复制配置文件
vi /etc/fail2ban/jail.local #按i编辑配置文件
保持默认 [DEFAULT]
"ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
ban a host which matches an address in this list. Several addresses can be
defined using space separator.
ignoreip = 127.0.0.1
"bantime" is the number of seconds that a host is banned.
bantime = 3600
A host is banned if it has generated "maxretry" during the last "findtime"
seconds.
findtime = 600
"maxretry" is the number of failures before a host get banned.
maxretry = 3
##把dest=root改成dest=XXXX,因为刚才把端口22改成了XXXX
[ssh-iptables]
enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=root, [email protected]] logpath = /var/log/secure maxretry = 5
按 esc 退出编辑,:wq #保存并退出
sudo service fail2ban restart #重启 fail2ban 10、VPS端安装Shadowsocks
yum install python-setuptools && easy_install pip yum install libevent yum install python-devel pip install gevent yum install openssl-devel yum install swig pip install M2Crypto pip install shadowsocks
vi /etc/shadowsocks.json
#按i编辑
{ "server":"0.0.0.0", "server_port":XXX,#自定义 "local_address":"127.0.0.1", "local_port":"1080", "password":"自定义", #自定义 "timeout":300, "method":"aes-256-cfb", "fast_open": false }
ESC退出 :wq保存
sudo ssserver -c /etc/shadowsocks.json -d start --user A #用ssuser这个用户来运行ss
echo 'ssserver -c /etc/shadowsocks.json -d start' >> /etc/rc.local #开机启动
iptables -I INPUT -p tcp --dport XXXX -j ACCEPT #开放SS中的端口
service iptables save #保存iptables的更改 11、安装电脑端的SS
OS X ShadowsocksX: 2.6.3.dmg
https://github.com/shadowsocks/shadowsocks-iOS/releases/download/2.6.3/ShadowsocksX-2.6.3.dmg
Windows 7 or above: 2.5.6.zip
https://github.com/shadowsocks/shadowsocks-csharp/releases/download/2.5.6/Shadowsocks-win-2.5.6.zip
@ Windows8.1/Windows7/Windows 10/Mac OS X/Android 下使用教程
12、VPS端安装FS
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh #一键安装
tail -f /fs/server.log #查看日志,如果有success字样则表示成功安装
chmod +x /etc/rc.local #设置开机启动
vi /etc/rc.local #按i编辑,加入一条 sh /fs/start.sh
crontab -e #每天晚上3点自动重启,加入0 3 * * * sh /fs/restart.sh
sh /fs/restart.sh; tail -f /fs/server.log #重新启动
13、电脑端安装FS(内含OS X和WIN)以及使用教程
下载地址
https://codeload.github.com/91yun/finalspeed/zip/master
使用教程
https://web.archive.org/web/20160603233752/http://www.ip4a.com/t/513.html
14、流量统计
yum install git #安装git
yum install bc #安装计算器
git clone https://github.com/hellofwy/ss-bash #安装ss-bash
ssserver -c /etc/shadowsocks.json -d stop #先把SS停止运行
sudo ss-bash/ssadmin.sh add port password limits #例如sudo ss-bash/ssadmin.sh add 8388 123456 10G #表示8388端口的密码是123456,流量限制10G #只有ssmlt.json在此文件中的用户才能正常使用SS #当10G用完后就会断网,此时fianlspeed中还可以看到ping值但是无法联网 #你需要估算自己的使用量,在sudo crontab中加入定时命令,定时清空使用量
sudo crontab -e #进入crontab,按i编辑
5 0 1 * * root sudo ss-bash/ssadmin.sh reset_all_used #加入此条命令 #表示每月1日0点5分的时候 全部用户流量限制置零
按esc键,输入:wq #退出crontab并保存
sudo ss-bash/ssadmin.sh start #启动
sudo ss-bash/ssadmin.sh help #具体用法见此命令
##设置开机启动 vi /etc/rc.local 按i进入insert编辑 ##可以看到有刚才让SS开机启动的命令,你可以在它前面加#注释掉 ##加一句 sudo ss-bash/ssadmin.sh start 让ss-bash开机启动 ##按ESC :wq 退出并保存
一些常用的命令
ifconfig eth0 #查阅vps的ip
ssserver -c /etc/shadowsocks.json -d restart; tail -f -n 20 /var/log/shadowsocks.log #重启SS+查看最后20行
pip show shadowsocks #查看当前版本
sh /fs/restart.sh; tail -f -n 20 /fs/server.log #重启+查看日志最后20行
Iptables -D INPUT X #删除INPUT Iptables -I INPUT X #新建规则插入到第六6条 iptables -A INPUT -p all -j REJECT
sudo ssserver -c /etc/shadowsocks.json -d stop #停止SS shadowsocks桌面端下载
https://shadowsocks.org/en/download/clients.html
Telegram 下载
安卓 (Goolge play apk)
https://apps.evozi.com/apk-downloader/?id=org.telegram.messenger
IOS
https://itunes.apple.com/app/telegram-messenger/id686449807
WP
https://www.microsoft.com/zh-cn/store/apps/telegram-messenger/9wzdncrdzhs0
Chrome 扩展
https://chrome.google.com/webstore/detail/telegram/clhhggbfdinjmjhajaheehoeibfljjno
firefox
https://marketplace.firefox.com/app/telegram/
win
https://updates.tdesktop.com/tsetup/tportable.0.9.44.zip
或
https://github.com/shadowsocks/shadowsocks-csharp/releases/download/2.5.6/Shadowsocks-win-2.5.6.zip
OS X
https://updates.tdesktop.com/tmac/tsetup.0.9.44.dmg
或
https://github.com/shadowsocks/shadowsocks-iOS/releases/download/2.6.3/ShadowsocksX-2.6.3.dmg
Linux 64
https://updates.tdesktop.com/tlinux/tsetup.0.9.42.tar.xz
Linux 32
https://updates.tdesktop.com/tlinux32/tsetup32.0.9.42.tar.xz
Telegram频道(购买专用,进channel请保持在线,并留下自己的邮箱)