公网环境访问内网服务器,使用samba(smb)文件共享服务

版权声明:版权声明:本文为原创文章,版权归 Deng‘s Blog 所有,转载请注明出处! https://blog.csdn.net/deng_xj/article/details/88971573

公网环境访问内网服务器,使用samba(smb)文件共享服务

FRP
挂载
FRP
SSH端口
访问
访问
samba
Linux
cifs
Windows
Winscp等客户端
SFTP协议登陆
使用文件访问服务
http://IP:6500/static/
FTP服务
FileZilla等客户端
ftp://IP:端口
ftp本地映射

在家中通过samba搭建完成家庭nas服务器后,如何在公网环境下访问内网服务器,使用samba(smb)文件共享服务呢?

在解决问题前,我们先要了解在局域网环境下,使用samba(smb)文件共享服务有哪几种方式:

途径1. 映射网络驱动器

我的电脑—>映射网络驱动器—>Z:\\IP地址\share

映射至本地

途径2. 使用共享文件夹访问

win 键 + R 键 打开运行,输入地址:

\\192.168.1.101

在这里插入图片描述
基于上述访问方法,在此总结如下两种公网环境访问方式。

方法一: 内外网搭建VPN(安全,推荐)

适用场景:内网服务器处于的内网拥有公网IP,否则请使用方法二

1. 拥有静态公网IP情况下:
Step 1 固定内网IP

使用浏览器登录路由器,在地址栏输入:192.168.1.1,然后回车,默认的账号密码都是admin,将IP与MAC绑定,固定内网IP。
固定IP

Step 2 端口映射 (推荐DMZ映射)

直接在路由器上设置一下端口映射(使用带端口映射功能的路由器,或者使用DMZ主机功能,把内网中的一台主机完全暴露给互联网,开放所有端口,等同于全部端口映射。等于直接使用公网IP。),将内网IP与端口映射到公网IP的一个端口上。当外界需要访问内网端口的服务时,只需要向公网IP对应的端口发起请求即可。(当然不要忘记先固定内网IP)
在这里插入图片描述
配置时,以树莓派为例,其中外部端口是外网访问的端口,例如可选9000,建议不要太小,因为服务提供商可能屏蔽较小的一些端口。

例如你的公网ip为 x.x.x.x,这些设置完以后就可以在浏览器中输入x.x.x.x:9000,即可访问。

2. 拥有动态公网IP情况下:

这种情况下依然可以做端口映射,但是由于IP地址不固定,所以需要通过方法来告知连接者IP到底是多少。解决这个问题可以采用DDNS(动态域名解析)技术。

通过域名 访问
获取
端口映射
客户端
动态域名解析DDNS服务器
动态域名解析DDNS服务器
局域网关出口处的公网IP
局域网关出口处的公网IP
内网服务器
Step 1 路由器静态分配内网IP

使用浏览器登录路由器,在地址栏输入:192.168.1.1,然后回车,默认的账号密码都是admin,将IP与MAC绑定。
固定IP

Step 2 动态域名解析

DDNS(动态域名解析)技术就是首先获得一个域名,并要求内网设备每隔一段时间对于DDNS服务器发起请求,DNS服务器将请求的IP记录下来并且刷新相关域名的解析记录。最终可以通过该域名找到当前的IP地址。

在这里插入图片描述
路由器DDNS解析之后,无需登陆花生壳等服务端,相反,登陆花生壳服务端予以配置后,会互相冲突,影响动态域名解析。

动态域名解析检测方法是 ping 域名:端口 ,查看回显IP是否为本机分配到的公网IP。

在完成上述工作后,可以开始部署VPN了 点击查看部署方法

在这里插入图片描述

方法二 内网穿透

点击查看全部操作方法

在此重点介绍frp内网穿透 查看文章

1. 防火墙需要开放相应端口:

在这里插入图片描述

2. 服务端配置:
sudo apt-get update

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

tar -zxvf frp_0.17.0_linux_amd64.tar.gz  #解压缩:tar xvf 文件名

cd frp_0.17.0_linux_amd64                #进入解压目录

#修改frps.ini文件
sudo vim ./frps.ini

添加以下内容:
[common]
bind_addr = 0.0.0.0         # 0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6.
bind_port = 7000            # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致
dashboard_port = 7500       # 控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面,用户名密码默认都为 admin。
#后台保持启动 需要在frp_0.17.0_linux_amd64目录下操作
nohup ./frps -c ./frps.ini &

返回:nohup: ignoring input and appending output to ‘nohup.out’ 代表执行成功,ctrl+c关闭即可;用ps -ef 会在进程中看见frp工作进程。

3. 客户端配置:
sudo apt-get update

wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz

tar -zxvf frp_0.17.0_linux_arm.tar.gz  #解压缩:tar xvf 文件名

cd frp_0.17.0_linux_arm                #进入解压目录

#修改frps.ini文件
sudo vim ./frpc.ini

添加以下内容(需要删除注释)
[common]
server_addr = your_server_ip               #VPS服务器IP
server_port = 7000                         #端口,与服务端bind_port一致  

[samba]
type = tcp
local_ip = 127.0.0.1
local_port = 445                           #samba默认端口
remote_port = 4545                         #自定义的远程访问端口,4545是转发端口,目的是将本地的445端口转发到远程服务器上面的4545端口中去。

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 21
remote_port =6000

#  对外提供文件访问服务
[test_static_file]
type = tcp
remote_port = 6500
plugin = static_file
# 要对外暴露的文件目录
plugin_local_path =/samba
# 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = static
plugin_http_user = 123
plugin_http_passwd = 123

plugin_local_path = 写绝对路径(从root根目录开始) 如:/home/pi/Desktop 这里选择进入 samba 目录

在这里插入图片描述
先运行一下,有上面的显示说明能够正常运行后再在后台启动。

#后台保持启动  需要在frp_0.17.0_linux_arm目录下操作
nohup ./frpc -c ./frpc.ini &

注意!!!每次修改完配置文件之后,需要先kill之前的FRP进程,重新执行才可以更新配置!
注意!!!每次修改完配置文件之后,需要先kill之前的FRP进程,重新执行才可以更新配置!
注意!!!每次修改完配置文件之后,需要先kill之前的FRP进程,重新执行才可以更新配置!

查询进程与结束进程命令

ps -ef |grep frpc
kill -9 [进程号]

设置为开机自动启动

sudo vim /etc/systemd/system/frpc.service
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/frp_0.17.0_linux_arm/frpc -c /frp_0.17.0_linux_arm/frpc.ini
Restart= always
RestartSec=1min

[Install]
WantedBy=multi-user.target

注意ExecStart中要配置成自己的路径.
然后使用systemctl start frpc即可启动frpc, 用systemctl enable frpc即可将frpc设置为开机启动。

在这里插入图片描述
不要忘记开放相应端口!

4. 访问:

linux: 安装cifs

apt-get install cifs-utils
mount.cifs -o port=4545  //服务器ip/public/vps  /mnt/share/ 

记得要先创建share目录,不然可能会挂载失败。

windows:

方法1:

使用Winscp等软件登陆:

在这里插入图片描述
填写主机IP(VPS的公网IP)、端口(自定义的远程访问端口6000)、用户名密码(树莓派的用户名和密码) ,即可访问。
在这里插入图片描述

方法2:

除了使用SFTP服务以外,通过浏览器访问 http://x.x.x.x:6500/static/ 来查看位于 /samba 目录下的文件,会要求输入已设置好的用户名和密码。

在这里插入图片描述

方法3:(实现方法点此查看

此外,可以搭建FTP服务,通过 ftp://用户名:密码@IP:端口 的形式访问samba

在这里插入图片描述
当然,使用FileZilla登陆FTP更是可以实现上传和下载:

链接:https://pan.baidu.com/s/11hd0Kqw5pGxRcer6aBh__Q
提取码:jtn2

在这里插入图片描述
在这里插入图片描述
最后的最后!
最后的最后!
最后的最后!

当然是选择他啦!

在这里插入图片描述
在这里插入图片描述
最后友情提示一点,你是不是在用公网的服务器地址尝试连接本地内网的FTP文件夹,舍不得开热点,恐怕要经历失败(手动狗头)。点此了解出现227 Entering Passive Mode错误命令原因及解决方法

参考:
1: https://dengxj.blog.csdn.net/article/details/88821719
2: https://dengxj.blog.csdn.net/article/details/88922690
3: https://dengxj.blog.csdn.net/article/details/88952420

猜你喜欢

转载自blog.csdn.net/deng_xj/article/details/88971573