700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【内网穿透服务器】公网环境访问内网服务器(以使用samba(smb)文件共享服务为例)

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

时间:2019-09-25 09:37:06

相关推荐

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

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

如何在公网环境下访问内网服务器?本文以在家中通过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 updatewget /fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gztar -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 updatewget /fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gztar -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服务器IPserver_port = 7000#端口,与服务端bind_port一致 [samba]type = tcplocal_ip = 127.0.0.1local_port = 445 #samba默认端口remote_port = 4545#自定义的远程访问端口,4545是转发端口,目的是将本地的445端口转发到远程服务器上面的4545端口中去。[ssh]type = tcplocal_ip = 127.0.0.1local_port = 21remote_port =6000# 对外提供文件访问服务[test_static_file]type = tcpremote_port = 6500plugin = static_file# 要对外暴露的文件目录plugin_local_path =/samba# 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径plugin_strip_prefix = staticplugin_http_user = 123plugin_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 daemonAfter=syslog.target network.targetWants=network.target[Service]Type=simpleExecStart=/frp_0.17.0_linux_arm/frpc -c /frp_0.17.0_linux_arm/frpc.iniRestart= alwaysRestartSec=1min[Install]WantedBy=multi-user.target

注意ExecStart中要配置成自己的路径.

然后使用systemctl start frpc即可启动frpc, 用systemctl enable frpc即可将frpc设置为开机启动。

不要忘记开放相应端口!

二、访问

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

1. linux

#安装cifsapt-get install cifs-utilsmount.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下载:

链接:/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./article/details/88821719

2: https://dengxj./article/details/88922690

3: https://dengxj./article/details/88952420

4: https://dengxj./article/details/89520682

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。