windows-nas 篇三:无公网环境实现输入网址访问内网jellyfin和immich服务
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服务.至于安全性,那就是仁者见仁智者见智了!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~