如何用tun2socks更优雅的实现Linux全局代理(转)

admin2年前他山之石388

tun2socks

tun2socks分支有相当多,如下

  1. go-tun2socks(Golang版本)

  2. badvpn-tun2socks(C版本 内存占用小)

安装

badvpn安装很简单,官方有binary源
badvpn下载binary源

不过更新速度好像比较慢,还是直接编译源码方便

先安装依赖

apt install libnss3-dev build-essential make cmake net-tools git

然后一键编译

git clone https://github.com/ambrop72/badvpn.git && cd badvpn && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr && make install

编译完了就能用了。但还需要自己添加一个tun网卡,需要开启Linux tun/tap支持

为了偷懒,我把这些写成一键脚本

新建一个文件,自动添加网卡,这样就不需要每次手动添加了,或者自己去新建一个/etc/network/里面的配置文件,/etc/init.d/tun2s,名字随意,一定要在/etc/init.d/目录

给这个文件添加以下内容

#!/bin/bash
### BEGIN INIT INFO
# Provides:          tun2s
# Required-Start:    $network $syslog
# Required-Stop:     $syslog 
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: fast and reliable load balancing reverse proxy
# Description:       This file should be used to start and stop haproxy.
### END INIT INFO

ip tuntap add dev tun2 mode tun
ifconfig tun2 192.168.168.0/24 netmask 255.255.255.0
route add default gw 192.168.168.2

192.168.168.0那个可以改,如果被占用你就改个其他的

然后再新建一个文件,/etc/systemd/system/tun2socks.service,使用systemd守护tun2socks防止挂彩

添加以下内容

[Unit]
Description=tun2socks
After=network.target
Wants=network.target

[Service]
Type=simple
#PIDFile=/run/tun2socks.pid
User=root
Group=root
ExecStart=/usr/bin/badvpn-tun2socks --netif-ipaddr 192.168.168.2 --netif-netmask 255.255.255.0 --socks-server-addr "192.168.xx.1:8888" --tundev "tun2" 
Restart=always
# Don't restart in the case of configuration error
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target

tun2改成你tun网卡名字,netif改成你在上面填的虚拟子网段,socks-server-addr改成你的虚拟机网段,:8888改成你的socks5端口

然后添加开机启动

update-rc.d tun2s(或者你自己改的名字) defaults
systemctl enable tun2socks


相关文章

地理空间距离计算优化_附近商家(转自美团技术博客)

1 地理空间距离计算面临的挑战打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是“离我最近”或者“智能排序”(如下图所示)。手机app示意不管是“离我最近”还是“智能排序”,都涉及到计算用户...

nginx+php大文件上传参数配置(转)

大文件上传要注意几个环节1,上传文件需要花费较长上传时间和处理执行时间,需要设置nginx上传时间、延攻php执行超时时间2,大文件处理需要占用较大内存,需要增加php内存池,考虑到有多个文件上传处理...

Docker PHP安装扩展步骤详解(转)

前言此篇,主要是演示docker-php-source , docker-php-ext-install ,docker-php-enable-docker-configure 这四个命令到底是用来干...

两点之间距离 PHP、JS版(美团技术博客算法)

/**  * 计算两点之间距离 有少许可以忽略的误差  * 两点不能差距太远  * 适用于 附近商家 &...

射线法判断点是否在多边形内(转)

/**  * @description 射线法判断点是否在多边形内部  * @param {Object} p ...

dockerfile详解(转)

什么是dockerfile?Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。docker b...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。