科学上网

1.概述

该篇文档为自己所做笔记,防止后续忘记如何部署。

2.V2Ray 简单部署

2.1 V2Ray服务器部署

  1. 安装依赖及执行以下代码
1
2
3
4
5
6
7
yum makecache
yum install curl

curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh
bash install-release.sh
bash install-dat-release.sh
  1. 在/usr/local/etc/v2ray下面创建一个新的config.json配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"inbounds": [{
"port": xxxx, //此处为安装时生成的端口,可修改随意,但是保证和下面提到的端口号相同
"listen":"127.0.0.1", //设置了监听地址后,后续在客户端上直接使用服务器IP是无法连接成功的
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "xxxxx-xxxx-xxxxx-xxxx-xxxxxx", //此处为安装时生成的id
"level": 1,
"alterId": 64 //此处为安装时生成的alterId
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/yuuka" //此处为路径,需要和下面NGINX上面的路径配置一样
}
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
},{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}
]
}
}
  1. 启动V2Ray
1
2
3
systemctl restart v2ray
systemctl status -l v2ray
systemctl enable v2ray
  1. 开启防火墙

这个步骤一定不要漏,否则后面配置再久也没用。

CentOS 7.0 默认使用的是 firewall 作为防火墙,而不是iptables。

  • 如果你的系统上没有安装,则使用命令安装:

安装firewalld 防火墙

1
yum install firewalld

其他常用命令:

开启服务

systemctl start firewalld.service

关闭防火墙

systemctl stop firewalld.service

开机自动启动

systemctl enable firewalld.service

关闭开机制动启动

systemctl disable firewalld.service

  • 开启防火墙上的端口。

    – zone #作用域

    – add-port=80/tcp #添加端口,格式为:端口/通讯协议

    – permanent #永久生效,没有此参数重启后失效

1
2
3
[root@ss-1 ~]# firewall-cmd --zone=public --add-port=11234/tcp --permanent
[root@ss-1 ~]# firewall-cmd --zone=public --remove-port=11234/tcp --permanent
[root@ss-1 ~]#firewall-cmd --list-all //查看防火墙规则

CentOS 6.0使用iptables规则,放通相应端口

1
2
3
4
5
vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11234 -j ACCEPT

systemctl restart iptables.service #重启防火墙使配置生效

2.2 V2Ray客户端使用

神一样的工具们

  1. 我在windows中,下载的上面的图形工具是V2RayW。其实解压了该压缩包,运行V2RayW.exe文件也会给出提示要下载V2Ray。

  2. 所以下载了V2RayW这个还不够,得需要下载V2Ray。

  3. 下载的V2RayW 的压缩包解压后,能看到V2RayW.exe文件。

  4. V2RayW.exe文件需要和v2ray-core文件夹在同一个目录下。v2ray-core文件夹存放V2Ray的文件。如果没有文件夹,则自动手动建立一个。

  5. v2ray-core文件夹内应该包含4个文件v2ray.exe、v2ctl.exe、geosite.dat、geoip.dat


  1. 运行该文件V2RayW.exe,在工具栏找到该图标,右键配置。
  1. 照下图配置
  1. 配置完后,选择加载V2Ray
  1. 此时windows主机应该可以正常上网了

附录:给Centos7服务器开BBR加速

BBR介绍

Google BBR (Bottleneck Bandwidth and RTT) 是一种新的TCP拥塞控制算法,它可以高效增加吞吐和降低网络延迟,并且Linux Kernel4.9+已经集成该算法。开启BBR也非常简单,因为它只需要在发送端开启,网络其他节点和接收端不需要任何改变。

升级内核

1. 打开Terminal

输入

1
# uname -r

查看内核版本,如果输出类似

3.10.0-514.21.2.el7.x86_64

则表示小于4.9,需要升级内核,
而如果内核大于等于4.9则跳过至开启Google BBR

2. 升级内核
  • 安装 ELRepo 仓库

    1
    2
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  • 安装最新版kernel

    1
    # yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 确认是否安装成功

    1
    # rpm -qa | grep kernel

    如果输出类似如下,包含kernel-ml-4.13.10-1.el7.elrepo.x86_64,则表示安装成功

    kernel-3.10.0-693.el7.x86_64
    kernel-tools-3.10.0-693.el7.x86_64
    kernel-ml-4.13.10-1.el7.elrepo.x86_64
    kernel-tools-libs-3.10.0-693.el7.x86_64

  • 设置开机默认启动项

    1
    # egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

    输出结果类似如下

    CentOS Linux 7 Rescue f212d2d7754a4a6bb2b98950c20cc0b5 (4.13.10-1.el7.elrepo.x86_64)
    CentOS Linux (4.13.10-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-d1f142097d497f24c021d7de9b81cab4) 7 (Core)

    该列表从0开始索引,所以4.13内核索引为1

  • 设置启动项

    1
    # grub2-set-default 1
  • 重启

    1
    # reboot

    查看内核版本

    1
    # uname -r

    如果输出类似

    4.13.10-1.el7.elrepo.x86_64

    则表示升级完成

开启Google BBR

  • 修改sysctl配置

    1
    2
    3
    echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf
    echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf
    sysctl -p
  • 检查是否加载BBR

    1
    # lsmod | grep bbr

    如果输出结果包含tcp_bbr,则表示开启成功

    tcp_bbr 20480 0