netbird + rinetd实现组网端口映射

背景

我在成都的家里部署了一套内网的多媒体服务器,jellyfin。为了让jellyfin能够在老家也能访问,并且ip固定不变,然后就是网段的不通,就需要从A网段映射到B网段。内网穿透走公网会比较费流量。

于是我找到了一个端口映射软件,当然我也可以使用iptables做转发,但是由于我采用的低功耗设备没有配置好iptables,于是不得不换一个工具来做端口转发。

jellyfin

jellyfin是一款支持多端使用的多媒体软件,他支持手机app、android tv、PC电脑等平台的客户端。通过ip地址+端口号访问jellyfin服务器端,采用的TCP协议,因此做TCP端口转发就能实现jellyfin在各个网段网络互联通。

通过Netbird机型wireguard交叉组网,能够实现100.0.0.0/8 所有设备都在这个网段的互联通。

然后配置一个成都linux系统的路由转发实现,100.0.0.0 段的所有设备将特定的ip段访问转发到成都的内网。从而实现了组网设备的访问内网ip 192.168.1.6

来看看成都家里的网络情况

设备ip 设备netbird网络 说明
192.168.1.6 100.116.50.28 跑的jellyfin 8096, 作为netbird路由设备
192.168.1.136 100.116.12.196 赚钱宝的网路ip,这个因为在内网测试,放在其他网段也可以的。

安装Netbid

这个过程就比较繁琐了,本文重点不讨论这个,但是要介绍下配置

这个是我的赚钱宝设备的netbird配置,ip地址为:100.116.12.196
image

下面这图是netbird的路由配置,主要将192.168.1.0/24 ip段的访问数据通过netbird组网的网络内的特定设备范围配置路由到指定的设备内网中。

image

rinetd 安装

我这里使用的赚钱宝的armlinux,armv6 是32位的CPU。晶晨S805的,毕竟还是超级低功耗的设备,性能一般般,但是省钱是真的。首先还是老规矩,更新包

sudo apt update

安装rinetd

sudo apt install rinetd

修改配置文件

nano /etc/rinetd.conf

### 
文件中新增映射配置,就是将这个设备暴露8096端口,并映射到192.168.1.6:8096

具体新增配置内容如下
-----------------------
# jellyfin
0.0.0.0 8096 192.168.1.6 8096
# http
0.0.0.0 80 192.168.1.6 80
-----------------------

然后执行
service rinetd start

执行 查看状态
service rinetd status

开启自动启动
systemctl enable rinetd

然后测试下能否访问

image

ok,大功告成。。。

来源: 雨林博客(www.yl-blog.com)