无公网环境实现输入网址访问内网jellyfin和immich服务

2024-04-14 20:41:12 1点赞 3收藏 0评论

vps环境:debian 10 公网ip4

内网机环境:win11

前面的jellyfin和immich搭建都是用的windows docker,具体方法以后有时间再写.

这里主要是个人的一个思路整理和学习笔记,有更好的实现方法的话,可以在评论区探讨.

本人没有系统的学习过这些网络知识,都是网络整理,希望可以帮到大家!

目的:输入aa.xx.xx(网址)访问内网的jellyfin服务(通常为内网的127.0.0.1:8096),

输入bb.xx.xx访问内网immich(127.0.0.1:2238}

思路:

输入aa.xx.xx,bb.xx.xx dns服务器解析为vps的ip地址,假设为111.111.111.111

ngnix监听80端口,根据aa,bb不同反向代理到vbs的不同端口,比如aa为111.111.111:8096,bb为111.111.111:2238

frp工具将不同端口穿透到内网的服务,比如111.111.111:8096到127.0.0.1:8096,111.111.111:2283到127.0.0.1:2283

1,安装ngnix,略

ngnix conf修改

server {
listen 80;
server_name aa.xx.xx;
location / {
proxy_pass http://111.111.111:8096;
proxy_set_header
Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
}

server {
listen 80;
server_name bb.xx.xx;
location / {
proxy_pass http://vps111.111.111:2283;
proxy_set_header
Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
}

用这个命令来查看nginx的错误

nginx -t

重新启动ngnix

systemctl restart nginx

2,安装frp,链接地址替换成github上最新的下载地址

wget https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz

3.解压下载文件

tar -xvf frp_0.57.0_linux_amd64.tar.gz


4.然后将上述文件名重命名为frp

mv frp_0.57.0_linux_amd64 frp

5.进入文件夹内修改frps.toml

cd frp

然后修改一下服务器的frps.toml

示例:

以下是一个简单的 frps.toml 配置示例,您可以根据自己的需求进行修改和扩展:

# frps.toml bindPort = 7000 #令牌密码 auth.token = "改成你的令牌密码" # Server Dashboard,可以查看frp服务状态以及统计信息 webServer.addr = "0.0.0.0" # 后台管理地址 webServer.port = 7500 # 后台管理端口 webServer.user = "admin" # 后台登录用户名 webServer.password = "admin" # 后台登录密码


6.本地端frpc配置,我本地是windows,到上述的github上面下载windows版本的frp就行.

frpc本地端修改frpc.toml示例:

serverAddr = "替换自己vps的域名,ip"
serverPort = 7000
auth.token = "替换自己的令牌密码"


[[proxies]]
name = "jellyfin"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8096
remotePort = 18096

[[proxies]]
name = "immich"
type = "tcp"
localIP = "127.0.0.1"
localPort = 2283
remotePort = 12283

7.vps启动frp

cd /root/frp

将可执行文件移动到bin目录下

mv frps /usr/local/bin/

mv frpc /usr/local/bin/


查看是否安装正确:

frps --version

frpc --version


启动frps:

frps -c /root/frp/frps.toml


创建frps服务

nano /etc/systemd/system/frps.service


文本示例:

[Unit]
Description=frps
After=
network.target

[Service]
ExecStart=/usr/local/bin/frps -c /root/frp/frps.toml

[Install]
WantedBy=
multi-user.target


重启frp服务

systemctl restart frps


如果没有报错就行了


8.启动windows内网的frpc客户端


windows本地创建一个后台运行的vbs


示例:新建一个文本文档,将以下内容添加至文档之后. 然后重名为start_frp.vbs,然后启动

set ws=wscript.createobject("wscript.shell")
ws.run "cmd /c D:frpfrpc -c D:frpfrpc.toml",0

至此部署完成

这些没有涉及https的访问,证书问题,上面没有提及,都是http的访问,如果访问不了,看看是不是前面是https的访问.

如果没有vps,只想内网穿透,可以不需要域名,直接用frp做内网穿透就可以!!

frp.freefrp.net 这里可以提供免费的frp服务.至于安全性,那就是仁者见仁智者见智了!



无公网环境实现输入网址访问内网jellyfin和immich服务











作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
3
扫一下,分享更方便,购买更轻松