映射vps目录到自己电脑的摸索记录

最近拿discuz做了一个网站,需要修改模板文件之类的,还需要调试微信和QQ登陆的接口。都是些位置零散的小修改,但是有些需要在线上才能调试(QQ微信的oauth登陆,各种插件)。为了方便开发,我打算在阿里云的centos服务器上安装一个vpn和smb服务,然后在我的开发机上连接VPN并创建网络磁盘映射。

实验环境:

服务端 阿里云centos7服务器

客户端 普通的windows 10操作系统

实验过程:

1、在centos7上安装smba服务

smba服务是用来在linux操作系统上共享文件或者目录到windows网络的服务。也就是在linux上安装了之后可以指定某些文件夹共享到局域网,局域网内的windows计算机可以通过网上邻居或者直接在文件浏览器地址栏输入服务器IP

\\XXX.XXX.XXX.XXX

来操作服务器相应目录的文件。

首先查看系统是否安装了samba服务,可以用

service smb status

或者

systemctl staus smb

来查看状态,如果没有安装,使用

yum -y install samba

来安装samba服务,安装完毕后使用

vim /etc/samba/smb.conf

修改配置文件设置。配置文件内容比较多,这里挑重要的几条列一下:

首先是[global]下面的一些全局设置:

#这是网上邻居的所属工作组名
workgroup = MYGROUP
#这个没看到哪里用
server string = Samba Server Version %v
#这个是网上邻居显示的计算机名
netbios name = AliyunLite
#日志文件位置
log file = /var/log/samba/log.%m
#日志文件最大容量(KB)
max log size = 50 #安全性设置,通常默认设置够用
security = user
passdb backend = tdbsam #使用远程局域网里的打印机,如果是公司VPN会用到,这里用不到
load printers = no map to guest = Bad User
unix charset = UTF-8
;dispaly charset = UTF-8 #创建文件和目录时候使用的默认权限,这里777免得出现权限不足问题
create mask = 777
directory mask = 777
guest ok = no
valid users = root,smb
write list = @root
#这个节下面的每一组都是一个共享文件夹,这里我只配置了我自己的
#============================ Share Definitions ============================== #共享文件夹的名字 [xxx] #共享文件夹注释
comment = xxx #在服务器上的路径
path = /xxx/xxx
public = yes
writable = yes
read only = no
printable = no
browseable = yes
 
我们通过smbpasswd 来添加Samba用户,并设置密码。原理是通过读取/etc/passwd文件中存在的用户名。

  [root@localhost sir01]#smbpasswd -a root

  New SMB password: 注:在这里添加Samba用户root的密码;

  Retype new SMB password: 注:再输入一次;

以上配置改好之后重启samba服务:

systemctl restart smb

或者

service smb restart

然后连接上vpn之后就可以在文件浏览器里用\\xxx.xxx.xxx.xxx(服务器在vpn里的地址) 看到并操作服务器的文件了。

2、用OpenVPN建立稳定的VPN连接

首先登陆centos使用

wget https://gitee.com/lookingdreamer/SPPPOTools/raw/master/centos/vpn/openvpn/openvpn-install.sh

下载openvpn一键安装脚本。使用

chmod +x openvpn-install.sh
./openvpn-install.sh

开始安装openvpn。

大多配置都可以采用默认值,建议询问是否使用秘钥的那一项的时候设置一个秘钥。不过就算不设置秘钥,入侵者也需要先获取你的openvpn客户端配置文件才能登陆VPN。这个自动生成的配置文件内是有加密算法的秘钥对的。

安装完成后会生成一个客户端配置文件,您需要使用ftp或者securefx之类的工具从服务器上下载此配置文件。然后安装一个openvpn的客户端,我这里是安装了一个windows版的客户端,翻墙到openvpn的管网下载的,管网地址是:

https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.7-I607-Win10.exe

如果你没有翻墙工具,可以到我管理的BBS上下载,QQ登陆简单注册一下即可得到提取码:

https://www.shuyu.online/forum.php?mod=viewthread&tid=57&page=1&extra=#pid61

安装完毕之后,启动openvpn可以看到右下角任务栏出现这个带锁的显示器图标:

右键点击,导入配置文件,找到刚才生成的配置文件打开。导入配置之后即可右键点击它进行连接,连接成功后就可以在\\10.8.0.1\ 这个地址(在文件管理器,也就是计算机 或者 我的电脑打开)上看到你服务器的文件夹了。右键点击文件夹创建网络驱动器,之后就可以像操作本地文件一样操作服务器上的文件了。我试了一下phpstorm这个ide,过于重量级,intellisense可能会做很多操作来扫描网络驱动器,会造成卡顿。因此推荐使用vscode,sublime之类的轻量级代码编辑器进行操作。

到此已经可以在编辑器里直接修改服务器上的文件,免得零碎改动的上传下载。但是还有个问题,VPN打开的时候,可能你上不了外网,或者外网速度很慢。因为openvpn的默认设置是使用VPN服务端的网关上网,所有网络访问都会先绕到你的服务器上。这样既慢(通常便宜服务器也就1-2M的带宽)又浪费服务器流量。所以还需要如下2个关键步骤调整OpenVPN的配置,让你的电脑不通过服务器绕弯上网,而是用原有的本地网关路径直接上网:

登陆centos服务器进入控制台,修改openvpn配置文件:

vim /etc/openvpn/server.conf

找到这一句在前面加;

:wq存储关闭配置文件,重启OpenVPN。这里因为用的一键安装脚本安装的OpenVPN,并没有注册成服务所以systemctl和service都找不到这个服务。可以直接kill掉进程再重启,具体步骤如下:

这样就不会让你的电脑所有流量都绕道服务器了。

然后是客户端配置文件的修改,右键右下角的OpenVPN客户端图标,选择“编辑配置文件”,打开配置文件内容:

同样在这一句前面加上;

这是禁用防DNS泄露,如果没有注释掉的话原来的意思是所有域名解析也都从服务器的DNS走,现在openvpn客户端重新连接一次,使用VPN+SMB+网络驱动器映射就可以简单地在你自己电脑上操作服务器文件了。小修改不用麻烦地用上传下载工具折腾了,一个ctrl+s就把改动直接存到服务器,浏览器打开服务器域名直接F5看修改效果,调试OAUTH和各种在线的插件也方便多了。

这个方法只适用于小修改,如果是涉及到数据库之类东西或者新的模块,建议还是弄一个本地镜像来。

希望能给你的工作带来一些方便,我是费了一天左右的功夫搞定开OPENVPN同时走本地流量上网的问题,不过中途也学习了一下路由表之类的知识,虽然最后发现只需要改这两个配置就不必折腾路由表,OPENVPN的客户端会自动搞定繁复的底层操作,也算是塞翁失马了。

另外如果服务器开启了防火墙 记得放行你设置的OPENVPN的端口号 还有SAMBA服务端口号 SAMBA服务的端口号默认是445

如果您看完本篇觉得有用请点个收藏,还可以到我的网站数语在线软件IT板块获取更多技术和工具的交流分享:

https://www.shuyu.online/forum.php?gid=37

相关连接汇总:

samba服务安装配置: https://www.jianshu.com/p/0d8f44d1b9ed

一键openvpn安装脚本: https://segmentfault.com/a/1190000019471008

一键PPTP VPN服务搭建脚本:https://blog.csdn.net/enough_empty/article/details/51106563

像修改本机代码一样修改远端服务器的PHP网站的更多相关文章

  1. 修改Nginx的header伪装服务器

    有时候为了伪装自己的真实服务器环境.不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!今天看了一下baidu.com的webserver感觉像是nginx修改的 ...

  2. Linux基础二(修改ip地址、修改网关、修改DNS服务器、重新启动网络配置)

    网络的初始化 .ip地址的修改(临时生效) 使用ifconfig命令 ifconfig 网卡名 ip地址 netmask 子网掩码 [root@localhost /]# ifconfig eth1 ...

  3. 【Eclipse】Eclipse中tomcat的Server配置(解决修改代码不断的重启服务器)以及设置tomcat文件发布位置与JSP编译位置查看

     Eclipse有时候修改一点JS或者JSP都会自动重启,有时候修改完JS或者JSP之后必须重启服务器才生效,下面研究了server的一些选项之后彻底解决了这些问题,下面做记录: 我的 Eclipse ...

  4. git 学习笔记 —— 获取远端分支并修改后提交至远端仓库

    笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...

  5. ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(3)修改资料、修改密码

    在上一篇博客中实现了用户的注销和登录,其实代码里落了点东西,就是用户登录要更新最后一次登录时间和登录IP,这次补上.今天做修改资料和修改密码,TryUpdateModel是新用到的东西. 目录: AS ...

  6. Charles系列三:Charles打断点(包含修改请求,修改返回的内容),模拟慢速网络(弱网测试),域名映射,过滤请求,接口调试,打压测试

    一:Charles断点的使用(包含修改请求,修改返回的数据) 设置断点来修改请求和返回的数据,在开发过程中可以模拟多种响应.步骤如下: 1.添加断点方法有两种: 方法1:找到Charles中菜单项Pr ...

  7. JQuery DataTables Editor---页面内容修改&&数据库信息修改 (2)

    接上篇博文,详细说一下js代码以及JQuery DataTables Editor---页面内容修改&&数据库信息修改遇到的问题和解决办法. 1.关于dialog 初始化: $(&qu ...

  8. touch修改文件的修改时间和访问时间,ls --full-time显示文件详细,stat命令

    1. 同时修改文件的修改时间和访问时间 touch -d "2010-05-31 08:10:30" test.doc 2. 只修改文件的修改时间 touch -m -d &quo ...

  9. 通过psping测试结果,初步判断远端服务器的状态

    1.psping的输出结果为如下正常显示时,说明远端服务器的IP及端口可用 C:\Users\he.liming>psping 139.219.66.205:4352 PsPing v2.10 ...

随机推荐

  1. Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识

    摘要: 详解原型污染. 原文:Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识 作者:Lucas HC Fundebug经授权转载,版权归原作者所有. 可能有信息敏感的同学已 ...

  2. for循环,数字、字符串和列表内置方法

    目录 控制流程之for循环 基本语法 for+break for+continue for+else for循环打印lodaing 数字类型内置方法 整型 int 浮点型 float 字符串内置方法 ...

  3. Git学习笔记2-版本控制

    1.移除文件 第一步: $ git rm <flie> #删除工作区以及仓库里面的文件 $ git rm <flie> -f #如果文件删除之前修改过并且已经存放到暂存区域,使 ...

  4. 使用阿里云生成的pem密钥登录

    我用的阿里云生成的ssh密钥,服务器上已有公钥,私钥为.pem文件,下载在本地,网上都说要转换为.ppk再用,其实用secure不必转换 一..pem和.ppk文件区别 .pem 密钥通用格式  .p ...

  5. FusionSphere产品功能

    华为Fusion产品 FusionSphere解决方案的三种场景 服务器虚拟化 NFVI:运营商基于openstack kvm协议的解决方案 云数据中心 FusionSphere服务器虚拟化解决方案 ...

  6. i++和++1

    概述:i++和++i 这个问题困扰了我很长时间,在这段时间里自己不止一次的怀疑自己的智商,难道自己对编程一点天赋都没有吗?此问题严重打击了我的自信心.......也曾苦苦暗自琢磨,也曾百度谷歌疯狂搜索 ...

  7. 防止ARP欺骗

    前言: 曾经因为宿舍里面的同学经常熬夜打游戏,好言相劝不管用,无奈之下使用arp欺骗他们的主机,使之晚上11点之后游戏延迟,掉线,最后,一到11点同学们就都上床睡觉了. 防止arp欺骗的三种思路: 在 ...

  8. Java虚拟机所管理的内存,包含的运行时数据区域?

    运行时数据区域 线程私有(随用户线程的启动和结束而建立和销毁)或所有线程共享(随虚拟机进程的启动而存在) 抛出的异常 备注 程序计数器(Program Counter Register) 线程私有 唯 ...

  9. CF891B Gluttony

    原题链接 DOWNLOAD AS PDF 题目大意 给你一个有\(n\)个元素的数组\(a\),让你构造一个数组\(b\),满足从 \(a\).\(b\)中任选出\(k\)个下标对应的元素,它们的和不 ...

  10. 02-cmake语法-if、条件表达

    格式: if(expression) # then section. COMMAND1(ARGS ...) COMMAND2(ARGS ...) ... elseif(expression2) # e ...