说到内网穿透,想必很多人都会想到花生壳、natapp等等穿透工具,优点就是简单方便,缺点就是有端口数量限制,不交钱的话,还限制带宽、限制协议等等
pptp能做什么?
1.连上pptp的主机都会有个局域网ip,互相可以通过局域网ip进行访问,可以让多台远程主机互相访问
2.可以做内网穿透,无端口数量限制,带宽取决于你服务器的带宽
3.内网穿透之后,可以在自己的主机上搭建服务,云服务器只做转发,减少云服务器的负载
4.其它用途就看个位小伙伴的脑洞了...
如果教程看不懂的童鞋可以看下我自己录制的视频教程
http://car.linzhehao.cn:8080/download/study/pptp.mp4
云服务器一台,具备公网ip
系统:centos或ubuntu都可以
环境:docker、nginx
新建一个文件,文件名叫chap-secrets
vim /data/vpn/chap-secrets
文件内容是pptp连接的账号和密码,可自定义,同一个账号不能在两个地方同时使用
# 账号 * 密码 *
admin1 * 123456 *
admin2 * 123456 *
admin3 * 123456 *
拉取镜像
docker pull mobtitude/vpn-pptp
运行容器
docker run -d --name vpn-server --net=host --privileged -v /data/vpn/chap-secrets:/etc/ppp/chap-secrets mobtitude/vpn-pptp
防火墙放行1723端口
iptables -I IN_public_allow -p tcp -j ACCEPT --dport 1723
安全组放行1723端口

这样一个pptp服务器就搭好了
设置,网络里面有个vpn

去添加一个vpn

提供商:Windows内置
连接名称:随便填即可
服务器名称或地址:你的公网ip
类型:点对点隧道协议(PPTP)
用户名:刚刚文件中定义的用户名
密码:刚刚文件中定义的密码

新建完之后,点击连接就可以了

如果出现此界面,就表示连接成功了

打开百度,输入ip,如果出现的是你服务器的ip,就说明已经连接成功了

打开cmd,输入ipconfig查看ip,有个10.99开头的,就是你的局域网ip,连上pptp的小伙伴就可以通过局域网ip去访问你

如果出现这个错误,请检查防火墙或安全组是否开放了1723端口

如果出现这个错误,请检查用户名或密码是否正确,chap-secrets文件里用户名和密码的格式是否正确

云服务器可以作为pptp服务端,当然也可以作为pptp客户端,作为客户端的时候访问局域网ip就可以访问你这台电脑,就可以实现内网穿透了
首次搭建客户端的时候,需要先写个定时任务,否则客户端一旦连接,就会创建一个路由阻止你正常访问,让你无法连接服务器,到时候只能用救援连接了
crontab -e
添加以下内容
* * * * * sudo route delete -net 0.0.0.0 netmask 128.0.0.0 gw 0.0.0.0
:wq保存
拉取pptp客户端镜像
docker pull vimagick/pptp
启动容器
docker run -d --name vpn-client -e TUNNEL=连接名称随便填 -e SERVER=服务器ip -e USERNAME=用户名 -e PASSWORD=密码 --privileged --network=host vimagick/pptp
启动容器后,服务器会自动断开,此时需要等待1分钟,等定时任务执行后,才可连接
这时候ifconfig查看以下ip,有个10.99.99开头的,就是连上vpn的局域网ip

这时候就能在云服务器上,通过局域网ip访问你的电脑了,怎么做内网穿透,相信小伙伴们都已经会了吧,不过还是把教程写完吧
本地先启一个服务,随便一个端口能访问就可以,我这边直接用80端口

服务器中的nginx中配置
server {
listen 80;
location / {
# 这个ip是你自己电脑的ip
proxy_pass http://10.99.99.101;
}
}
访问你的公网ip,就可以相当于访问你本机了,这样一个内网穿透就做好了,如果需要穿透其他端口,在nginx中多配几个server就可以了

我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame
我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:
我将以下代码放在一起用于一个简单的RubyTFTP服务器。它工作正常,因为它监听端口69并且我的TFTP客户端连接到它,我能够将数据包写入test.txt,但我不只是写入数据包,我希望能够从我的客户端通过TFTP传输文件到/temp目录。预先感谢您的帮助!require'socket.so'classTFTPServerdefinitialize(port)@port=portenddefstart@socket=UDPSocket.new@socket.bind('',@port)whiletruepacket=@socket.recvfrom(1024)putspacketFile
在previousquestion中我想出了如何在多个服务器上启动经过密码验证的sshsession来运行单个命令。现在我需要能够执行“sudo”命令。问题是,net-ssh-multi没有分配sudo需要运行的伪终端(pty),导致以下错误:[127.0.0.1:stderr]sudo:sorry,youmusthaveattytorunsudo根据documentation,可以通过调用channel对象的方法来分配伪终端,但是,以下代码不起作用:它会生成上面的“notty”错误:require'net/ssh'require'net/ssh/multi'Net::SSH::Mul
我刚刚在我的Ubuntu9.10服务器上安装了TeamBox。我使用提供的服务器脚本在端口3000上启动并运行它。它的运行速度非常慢,从另一台计算机连接时每个HTTP请求最多需要30秒。我使用链接从shell加载TeamBox,一点也不花时间。然后我设置了一个SSH隧道,它再次运行得非常快。我通过此服务器上的apache以及SAMBA等运行了大约30个虚拟主机,没有任何问题。我该如何解决这个问题? 最佳答案 我的redmine(ruby,webrick)太慢了。现在我解决了这个问题:apt-getinstallmongrelruby