wireguard+VPS实现内网穿透

by atrandys

Atrandys / 2018-11-09 00:56

这篇教程我们会使用wireguard进行内网穿透,需要搭配一台拥有外网固定IP地址的VPS使用,因为wireguard天然支持对等方的ip变动,用来做内网穿透非常合适。另外这里也介绍wireguard很酷的操作,比如和好基友直接内网互联,查看对方电脑的共享文件。

搭建wireguard

这个就不讲了,本站有相关的centos7一键脚本,其中也介绍了windows客户端的配置方法,传送门

环境介绍

内网电脑

1、它是一台安装wireguard客户端的windows电脑,没有外网ip。

2、我们在这台电脑上配置了web服务,监听8080端口。

3、在wireguard中,配置的ip地址为10.0.0.2。

一台VPS

1、它安装wireguard服务端,拥有一个固定的外网ip地址。

2、在wireguard中,配置的ip地址为10.0.0.1

实现目标

将内网电脑中搭建的web服务转发出去,当我们访问VPS的ip:8080端口时,跳转到我们内网电脑8080端口。

实现过程

1、我已经搭建好了wireguard服务端和客户端

2、我在本机内网电脑上安装了web服务,监听8080端口。

这里我使用了phpstudy,快速搭建web环境,现在我设置web监听的端口为8080,修改nginx的监听端口,如下图

我访问localhost:8080,可以看到服务启动正常了。

3、在VPS服务端开启iptables转发

这里我把vps设置监听8080端口,转发到10.0.0.2的8080端口。

为什么转发到10.0.0.2呢,因为wireguard连接后,客户端和服务端会各自分配一个内网ip地址,前面已经介绍了,客户端(本地电脑)配置的ip为10.0.0.2,服务端(VPS)配置的ip为10.0.0.1

使用下面命令开启iptables转发8080端口

iptables -A INPUT -p tcp -m tcp –dport 8080 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -m tcp –dport 8080 -j DNAT –to-destination 10.0.0.2:8080

然后保存iptables,这样VPS重启后iptables的规则也生效。

service iptables save

4、测试,访问vps的ip:8080端口,可以看到已经把内网服务转发出去。

5、如需转发其他服务,可按照前面步骤,设置对应的端口转发即可。

下面介绍wireguard做点比较酷的事情,也是内网穿透的范畴,比如你和你的好基友都在各自家中的内网之中,都没有一个公网IP,我们可以借助wireguard实现好基友间的内网互联,这里无需配置iptables,只需要wireguard客户端之间的allowedips是允许你的基友的ip即可,或直接设置为全部允许(0.0.0.0/0)。

wireguard内网互联

1、你有一台VPS安装了wireguard服务端。

2、你和你的基友都安装了wireguard客户端,且分别和wireguard服务端连接成功。

3、这里我模仿一下,因为我本地有一个联通网络和一个歌华网络(垃圾网络),一台台式电脑使用联通网络(wireguard ip为10.0.0.2),一台笔记本使用歌华网络(wireguard ip为10.0.0.3)。

4、我在台式机上开启了共享文件夹,如下图,开启了共享文件夹dianying,里面有些电视剧。

5、我使用笔记本电脑,访问\10.0.0.2,可以看到台式机上共享的文件夹,如下图所示:

6、注意内网互联的流量都是从VPS中转的,注意流量别超标了。

好了这篇教程就到这了,多了解wireguard开拓更多的玩法吧。

设想一下,有很多个VPS,vps之间互通互联,vps又有多个客户端互通互联,是不是可以一起组建个大内网呢,嘿嘿。

Shared via Inoreader