【内网穿透服务器】公网环境访问内网服务器(以使用samba(smb)文件共享服务为例)

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

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

如何在公网环境下访问内网服务器?本文以在家中通过samba搭建完成家庭nas服务器后,如何在公网环境下访问内网服务器,使用samba(smb)文件共享服务为例,进行讲解。

一、搭建链路

1. 内网服务器处于的内网拥有公网IP情况下

(1) 拥有静态公网IP情况下:
Step 1 固定内网IP
Step 2 端口映射或DMZ映射
(2)拥有动态公网IP(动态NAT设备)情况下:
Step 1 路由器静态分配内网IP
Step 2 端口映射或DMZ映射
Step 3 动态域名解析

2. 内网服务器处于的内网不具有公网IP情况下

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

在这里插入图片描述

点击查看部署方法

(2)方法二 内网穿透 点击查看全部操作方法

在此重点介绍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设置为开机启动。

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

二、访问

在链路搭建完成之后,我们可以开始正式的访问了。

1. linux

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

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

2. windows:

(1)方法一:使用Winscp等软件SFTP(ssh)登陆

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

在这里插入图片描述

手机良心推荐使用 nPlayer app

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)方法二:使用FRP对外文件访问服务

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

在这里插入图片描述

(3)方法三:使用FTP服务访问 实现方法点此查看

搭建FTP服务后:

< 1 > 通过 ftp://用户名:密码@IP:端口 的形式访问samba

在这里插入图片描述
< 2 > 使用FileZilla登陆FTP访问samba

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

在这里插入图片描述
在这里插入图片描述
< 3 > 使用FTP磁盘映射访问samba

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

(4)方法四:使用WebDAV服务,磁盘映射

在局域网环境下,我们会采用映射网络驱动器的方式使用samba(smb)文件共享服务

具体来讲:我的电脑—>映射网络驱动器—>盘符:\\IP地址\share

映射至本地

在公网环境下,除了上文降到的使用FTP磁盘映射访问samba,我们还可以使用WebDAV服务,映射磁盘。

通过安装WebDAV Server ,开启http端口,在路由器做端口转发,在windows系统上安装NetDrive

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5)方法五:使用VNC远程登录的方式访问内网samba(smb)文件共享服务

上述方法一直都是在尝试穿透内网服务器,但是针对内网samba(smb)文件共享服务,由于其使用平台多为计算机,因此我们也可以通过穿透内网环境下的映射了samba(smb)文件共享服务的网络驱动器的计算机,直接访问。实现方式点击此处.

在这里插入图片描述

参考:
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
4: https://dengxj.blog.csdn.net/article/details/89520682

©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值