我最近使用Ubuntu Server和Samba搭建了一台小型服务器计算机,用作文件服务器(除其他功能外),以便我的整个家庭可以从Windows计算机通过网络访问某些文件。但是,我想更进一步,并希望可以从家外通过Internet访问共享。我该怎么做?我对Windows网络共享系统的工作原理知之甚少,所以我不知道从哪里开始。
我最近使用Ubuntu Server和Samba搭建了一台小型服务器计算机,用作文件服务器(除其他功能外),以便我的整个家庭可以从Windows计算机通过网络访问某些文件。但是,我想更进一步,并希望可以从家外通过Internet访问共享。我该怎么做?我对Windows网络共享系统的工作原理知之甚少,所以我不知道从哪里开始。
Answers:
使用Samba,您将不得不将端口139 / tcp和445 / tcp暴露给外部-通常这需要在路由器中配置“端口转发”。此外,您必须确保外部IP地址可从外部ping通。
之后,您可以通过\\youraddress
在Explorer的地址栏中或在Start-Run中输入来访问共享。(这里youraddress或者是你的外部IP地址或您的DNS名称,如果你有一个。)
但是请注意,Windows文件共享使用的CIFS和SMBv2协议不提供数据加密(因此,具有数据包嗅探器的任何人都可以监视您的文件传输),并且其身份验证也不是特别强大。仅SMBv3获得了加密支持。
另外,不要忘记Windows的SMB服务过去一直是非常频繁的感染目标。尽管大多数Windows漏洞不会以任何方式影响Samba,但这仍然值得牢记(并且通常意味着SMB端口在ISP级别被阻止了)。
另请注意,Windows计算机默认情况下会记住整个本地会话的登录凭据。除非您以“来宾”身份连接到Samba,否则必须在公共计算机上格外小心:请始终在使用net use \\address
资源管理器/ net use \\address /del
断开连接之前先使用它。(在个人计算机上不需要。)
为了提高安全性,请将以下内容添加到的常规部分smb.conf
:
LANMAN auth = no
NTLM auth = no
invalid users = root
如果您的家人可以使用WinSCP进行处理,则:
/srv/samba_files
通过Samba 进行曝光,则需要ln -s /home/{user}/files /srv/samba_files
对每个帐户进行或类似操作。如果必须对许多帐户执行此操作,则可以编写脚本来执行此操作。然后,您将拥有一种非常安全的传输文件的方法,该方法不太难使用。
但是,如果您真的希望与Windows进行“网络驱动器”集成,我将了解OpenVPN,然后设置到您的家庭网络的桥接隧道。我已经成功获取Windows文件共享以通过此类隧道进行工作。
您还可以使用PoPToP(pptpd)允许Windows系统通过PPTP vpn连接回Ubuntu盒。(IPSec / L2TP隧道可以提供更好的安全性,但是很难设置)。
files
指向的共享/srv/samba_files
?