linux环境下配置v2ray

1. 下载v2ray对应linux版本

下载地址选择v2ray-linux-64.zip下载。并且在服务器解压。

复制需要下载的链接使用wget命令下载(推荐下载好了传到服务器,这一步不走代理很慢)。

使用unzip命令解压文件unzip v2ray-linux-64.zip

image-20240304211432063

2. 将可执行命令转移到指定目录

将划线的命令权限改成所有用户可执行(v2ray.service v2ray@.service v2ctl v2ray)

1
2
3
4
5
chmod 777 v2ray
chmod 777 v2ctl
cd systemd/system/
chmod v2ray.service
chmod v2ray@.service

创建指定目录

1
2
mkdir /usr/local/share/v2ray/
mkdir /var/log/v2ray/

往对应目录转移命令 这样就可以使用systemctl启动了。

1
2
3
4
5
6
7
8
9
10
11
12
13
cp v2ray.service /etc/systemd/system/
cp v2ray@.service /etc/systemd/system/
cd ../../
cp geoip.dat /usr/local/share/v2ray/
cp geosite.dat /usr/local/share/v2ray/
# 在指定目录新建日志文档 这个在配置文件需要配置指定路径
# 因为我们日志如果权限不够启动会报错 需要加上权限
touch /var/log/v2ray/access.log
touch /var/log/v2ray/error.log
chmod 777 /var/log/v2ray/access.log
chmod 777 /var/log/v2ray/error.log
cp v2ctl /usr/local/bin/
cp v2ray /usr/local/bin/

3. 从v2ray中导出配置文件并且修改

我们可以从电脑的v2ray中右键某一节点,并且导出配置。

将对应配置文件上传到服务器。

修改配置文件

我们使用默认的配置就好了,只需要指定我们两个日志文件路径就好(路径就是我们之前创建日志文件的两个路径)。

将配置文件移动到指定位置

1
2
mkdir /usr/local/etc/v2ray/
mv zwz-20240304.json /usr/local/etc/v2ray/config.json

4. 修改配置文件全局代理

我们可以配置.bashrc文件 修改本机代理(这样就是在当前命令行生效)。也可以修改/etc/profile文件,这样就是所有命令行都会生效。

修改/etc/profile文件

设置两个函数,分别是设置代理和不设置代理。这样我们就可以在shell命令行执行对应函数,来设置全局代理和取消全局代理。

1
2
3
4
5
6
7
8
9
10
# set proxy
setproxy() {
export all_proxy="socks5://127.0.0.1:10808"
source /etc/profile
}
# unset proxy
unsetproxy() {
unset all_proxy
source /etc/profile
}

修改完了/etc/profile文件之后记得执行source /etc/profile使修改生效。

5. 设置全局代理

如果需要使用全局代理,我们可以在shell命令行执行setproxy函数,这样就会让我们代理生效。

1
2
3
4
5
6
7
8
9
10
# 设置全局代理
setproxy
# 打开v2ray
systemctl start v2ray
# 设置V2ray开机自启动
systemctl enable v2ray
# 检查v2ray启动状态
systemctl status v2ray
# 验证是否能够走代理
curl -v http://www.google.com/

如果v2ray启动成功,和下面显示相同。

如果我们curl -v http://www.google.com/能够走代理,显示如下,就说明成功了。

6. 取消全局代理

1
2
unsetproxy
curl -v http://www.google.com/

显示网络不可达,取消成功

7. 如何在python文件中使用代理 和取消代理

新建两个python文件 setproxy.py 和unsetproxy.py分别是设置代理和取消代理(仅在python执行环境中代理,不在shell环境中)

这两个文件均在/usr/local/v2ray路径下

setproxy.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os
import requests

# 设置代理
os.environ['all_proxy'] = 'socks5://127.0.0.1:10808'

# 测试访问外部网站
def check_internet():
try:
response = requests.get("https://www.google.com", timeout=5)
if response.status_code == 200:
print("能够访问外部网站!")
else:
print("无法访问外部网站。")
except requests.ConnectionError:
print("无法连接到互联网。")

check_internet()

unsetproxy.py

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
import os
import requests

# 设置代理
os.environ['all_proxy'] = 'socks5://127.0.0.1:10808'

# 测试访问外部网站
def check_internet():
try:
response = requests.get("https://www.google.com", timeout=5)
if response.status_code == 200:
print("能够访问外部网站!")
else:
print("无法访问外部网站。")
except requests.ConnectionError:
print("无法连接到互联网。")

check_internet()

# 取消代理
os.environ.pop('all_proxy', None)
print("代理已取消。")

# 再次测试访问外部网站
check_internet()