当前位置:网站首页 / FRP教程 / 正文

利用tun2socks实现frp全端口内网穿透

时间:2020年05月29日 | 作者 : liuhui | 分类 : FRP教程 | 浏览: 13966次 | 评论 0

阿里云限量代金券 | 此广告位出租25元/月

今天博士突发奇想:能否利用frpc代理模式来全端口访问异地内网?于是网上发现了一个叫tun2socks的开源项目,借助tun2socks实现了frp全端口内网穿透,下面开始教程!

首先你要在公司内部网络运行一个frpc,使用代理模式连接服务器,具体方法看另一篇教程:https://www.diannaobos.com/post/506.html

下面开始tun2socks教程

这是一篇在 Windows 上使用 tun2socks 进行全局 TCP/UDP 流量代理的教程,有别于一般仅使用 SOCKS5 代理浏览器请求的方式,这种全局代理不仅可以代理浏览器的请求,还可以代理其它所有应用程序的请求流量,比如代理游戏的流量,代理所有命令行工具的流量。

要使用 tun2socks,需要创建一个虚拟网卡,首先下载 Tap-windows 并安装:

下载地址:http://build.openvpn.net/downloads/releases/tap-windows-9.22.1-I602.exe

双击安装,一路下一步,确定之类的常规操作,YES,默认选项Next,旁边的勾如果没有打上的请打上,点击install,点击finish,最后为了确认是否真的安装成功,可以打开网络设置查看一下,如果安装成功,应该像下图那样,多出来一个虚拟网卡,下面有显示 TAP-Windows Adapter V9 的字样。

虚拟网卡安装完了,下面就可以下载一个 tun2socks:

下载地址:https://github.com/eycorsican/go-tun2socks/releases/download/v1.11.2/tun2socks-windows-4.0-amd64.exe.zip

下载保存解压后得到一个可执行文件

打开一个命令行, cd 到 tun2socks 程序所在的目录,然后执行下查看命令(-h)测试程序是否能够正常运行:

tun2socks-windows-4.0-amd64.exe -h

没问题的话就执行以下命令,正式运行 tun2socks:

tun2socks-windows-4.0-amd64.exe -tunAddr 10.0.0.2 -tunGw 10.0.0.1 -proxyType socks -proxyServer 192.168.50.60:1086 -dnsServer 8.8.8.8,8.8.4.4

上面命令表示 TUN 接口(虚拟网卡)的 IP 为 10.0.0.2,网关为 10.0.0.1,使用 socks5 代理协议,代理服务器地址是 192.168.50.60:1086,虚拟网卡的 DNS 服务器设为 8.8.8.8,8.8.4.4;其中 192.168.50.60:1086 是一个运行在我内网软路由上的 socks5 服务器。如果是在国内使用速度更快,建议将上面的谷歌DNS换成国内DNS。

使用 socks5 的话,服务器必须要支持 UDP。

运行命令后,可以打开网络适配器设置,你应该可以看到之前新创建的虚拟网卡的红色叉已经没了,查看网卡的状态之类的,能够看到它的地址,网关,和 DNS 都变成我们所指定的了

假如你发现它虚拟网卡的地址,网关,DNS 服务器等等不是我们所指定的,那你可以手动去设置它,具体方法很简单,就像平常设置静态 IP 一样,对着虚拟网卡的适配器点鼠标右键,点属性,双击 TCP/IPv4 那里,在弹出框里填上相关信息即可(其实可以不用填,填了下次重新运行配置依旧会消失)

虚拟网卡设置好了,tun2socks 也运行起来了,就差改路由表,把我们的虚拟网卡设为默认出口网卡了。

改路由表需要管理员权限,所以在程序里面找到cmd命令行程序,点鼠标右键,选择以管理员权限运行

首先可以在新打开的命令行里运行一条命令查看下当前路由表的信息:

netstat -nr

接下来运行一条命令把原来的默认路由删除:

route delete 0.0.0.0 mask 0.0.0.0

这时你会发现没有网络了!!!

再查看下路由表,可以发现原来列表中的第一条已经消失了

然后加一条新路由把我们的虚拟网卡指定为默认的路由出口

route add 0.0.0.0 mask 0.0.0.0 10.0.0.1 metric 6

这时再次 netstat -nr 可以看到新加的默认路由了,metric是控制路由的优先级的,在有多个网卡的情况下metric数值越小的网卡优先级越高,如果要添加永久生效路由,请在route后面加-p。

netstat-nr.jpg

加外还要加一条路由让去我们代理服务器的流量发到原来的网关(192.168.2.1):

route add 192.168.50.60 192.168.2.1 metric 5

这里 192.168.50.60 要替换成你代理服务器的地址,而原来网关的地址 192.168.2.1 在你系统上也可能不一样,你需要自己查看下,具体做法就是到网络适配器配置的页面,找到原来的网卡,双击打开状态,查看详细信息,里面的网关一项就是了

这时候tun2socks会自动停止,重新运行tun2socks

这时候你可以 ping 一下你的代理服务器,必须是能够 ping 通的,如果 ping 不通,肯定是前面路由表配置错了

这样就配置完成了。

这时如果你在命令行里输入,你应该能够得到返回结果

nslookup www.baidu.com

这时你会发现已经可以访问公司内网的共享了,甚至还能Ping通公司内网其他机子的IP,虽然流量全部经过FRPS但也算是实现了FRP的全端口内网穿透了!

恢复网络

因为刚才我们改了路由表,如果你现在把 tun2socks 给停掉(Ctrl + C)了,那你是不能够恢复上网的,因为现在没默认路由了!

为了能够在 tun2socks 停掉之后,原来的上网连接能够恢复正常,最简单的做法是直接重启电脑,没什么是一个重启解决不了的,有的话就再来个重启,但估计你不太愿意这么做,所以我们需要把原来的路由给加回去。

同样要以管理员权限来运行命令行,首先执行一条命令,把任何当前的默认路由给删除了:

route delete 0.0.0.0 mask 0.0.0.0
route delete 192.168.50.60 mask 255.255.255.255

然后把原来的默认路由加回去:

route add 0.0.0.0 mask 0.0.0.0 192.168.2.1 metric 10

再次注意,这个 192.168.2.1 在你的系统上可能是不一样的,你得自己去查看。

这就 OK 了,网络完全恢复原样,本教程也就到此为止。

推荐您阅读更多有关于“”的文章

猜你喜欢

网站分类
关注电脑博士
友情链接

分享:

支付宝

微信