tinc,很方便的组网工具
最近在折腾内网穿透。frp比较简单,但是每加一个端口需要改下配置文件不太方便,
搜索了一下,tinc能满足我现阶段的所有要求,而且配置比较简单,就是它了。
下面记录一下最简最快速的配置流程:
说明
server是国内的nat vps,拥有一个外网端口。
内网ip段为 10.0.7.0/24
server ip为10.0.7.1, 其它机器序号末位递增
流程
安装tinc
apt install tinc
在/etc/tinc
创建一个网络名称文件夹
cd /etc/tinc
mkdir messnet
在/etc/messnet
下面按照如下方式创建文件夹
root@debian:/etc/tinc# tree
.
├── messnet
│ ├── hosts
│ │ ├── server
│ │ └── shnas
│ ├── rsa_key.priv
│ ├── tinc.conf
│ ├── tinc-down
│ └── tinc-up
└── nets.boot
编辑 tinc.conf
Name = server
AddressFamily = ipv4
BindToAddress = * ${your port}
Interface = tun0
Device = /dev/net/tun
编辑hosts/server
文件
Address = ${your ip} ${your port}
Subnet = 10.0.7.1/32
生成密钥
tincd -n messnet -K4096
该操作会生成rsa_key.priv
,然后在hosts/server
末尾append 公钥。
为客户端生成一份hosts,可以直接复制hosts/server
cd hosts
cp server client
# 去掉client的配置文件中的Address
# 修改Subnet对应的ip,简单递增即可
这么修改之后,其实客户端、服务端的公私钥用的是同一个,虽然有些不规范,但是非常方便省时间!
编辑tinc-up
和tinc-down
文件
# tinc-up
#!/bin/sh
ifconfig $INTERFACE 10.0.7.1 netmask 255.255.255.0
#tinc-down
#!/bin/sh
ifconfig $INTERFACE down
# 权限
chmod a+x tinc-*
启动
#调试启动
tincd -n messnet -D --debug=3
#正常启动
tincd -n messnet
配置客户端
安装tinc
复制所有的配置文件到客户端
客户端配置文件修改
Name = ${client name}
AddressFamily = ipv4
Interface = tun0
Device = /dev/net/tun
ConnectTo = server
客户端修改tinc-up
和tinc-down
,和自己ip保持一致
启动客户端~
成功之后应该可以使用内网ip访问服务端了。
配置多个客户端之后,客户端之间也可以相互访问,非常方便!
参考链接
- https://zimiao.moe/posts/53555/
- https://imlonghao.com/46.html
- https://blog.zjustin.me/post/tinc-memo/
- https://www.yiwan.pro/index.php/ltd_documents/422-tinc-vpn-config-memorandum.html
其实选择的时候也尝试配过openvpn
,不过不太好用,如果不希望外网流量也走vpn,需要配置相应的规则,比较麻烦
而且在配置好openvpn
之后,遇到几分钟后tcp reset
的问题,两台机器都在国内,有点坑。
搭建openvpn
可参考下面链接,还蛮详细的。