# Linux 开启代理
今天折腾了几个小时终于把 linux 上的代理给搞好的了,真的无语啊。。。
# 下载 v2ray
v2ray 下载地址
# v2ray 配置
主要是对 config.json 进行配置
{ | |
"inbounds": [ | |
{ | |
"port": 1080, | |
"protocol": "socks", | |
"sniffing": { | |
"enabled": true, | |
"destOverride": ["http", "tls"] | |
}, | |
"settings": { | |
"auth": "noauth" | |
} | |
} | |
], | |
"outbounds": [ | |
{ | |
"protocol": "vmess", | |
"settings": { | |
"vnext": [ | |
{ | |
"address": "服务器IP", | |
"port": 端口, | |
"users": [ | |
{ | |
"id": "UUID", | |
"alterId": alterID | |
} | |
] | |
} | |
] | |
}, | |
"streamSettings": { | |
"network": "tcp" | |
} | |
} | |
] | |
} |
这玩意有点搞啊,Json 文件不能有注释,之前因为写了注释所以服务启动不起来。
这里我用的是香港 A IEPL < 广州移动节点,希望它能坚挺点,不至于很快挂掉。哪天有空写一个定时命令,定时更新节点。
开启代理: /home/wu/v2ray-cli/v2ray -config /home/wu/v2ray-cli/config.json
测试本地 IP: curl -4 ip.sb
测试代理 IP: proxychains curl -4 ip.sb
# 添加服务
vim /usr/lib/systemd/system/v2ray.service
[Unit] | |
Description=V2Ray Service | |
Documentation=https://www.v2fly.org/ | |
After=network.target nss-lookup.target | |
[Service] | |
ExecStart=/home/wu/v2ray-cli/v2ray -config /home/wu/v2ray-cli/config.json | |
Restart=on-failure | |
RestartPreventExitStatus=23 | |
[Install] | |
WantedBy=multi-user.target |
# 启动服务
systemctl daemon-reload
systemctl start v2ray
# Proxychains
proxy 下载在 centos 下可能不可用,这里有一篇文章 Centos 7 安装 Proxychains 教程实现 Linux 伪全局代理。
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5 127.0.0.1 1080
这里设置我的端口为 1080 用 socks5 协议
proxychains curl twitter.com -v
可以正常跑通
# 设置全局代理
export all_proxy='socks://127.0.0.1'
curl facebook.com -v
现在可以直接用 curl 跑通。
用 unset all_proxy
可以关闭全局代理
这里有个问题,wget 不会走 sock5 协议,这就导致 wget 全局下不能直接用:
但是可以用 proxychains 来强制执行。
# 将开启代理配置成命令(sh 脚本)
#!/bin/bash
nohup /mnt/d/wsl/v2ray/v2ray -config /mnt/d/wsl/v2ray/config.json >/dev/null 2>&1 &
>/dev/null
表示将标准输出扔到 null 里,
2>&1
表示将标准错误重定向为标准输出
&
表示后台执行
将这个命令命名为 v2
, 并移动到 /usr/local/bin
再加个权限 chmod 777 v2
Ok
直接终端可用
参考链接:
Linux 终端设置代理
记录:Linux 下 V2Ray 原生客户端配置
Linux 下使用 v2ray
将一个 shell 脚本文件注册为一个全局命令