文章目录

  • 安装配置
    • 服务端
    • Windows客户端
    • 确认两端能够访问
  • 服务暴露
    • 以代理方式实现
    • 以端口转发方式实现
  • 实现内网穿透
  • 将内网服务的HTTP/HTTPS、任意服务暴露代理

安装配置

服务端

n2n项目:https://github.com/ntop/n2n

下载源码包,编译安装

./autogen.sh
./configure
make
make install# 安装完执行命令,检查安装是否正确
supernode -h
edge -h

n2n组成为supernode + edge,各edge通过supernode建立起连接,而后通过supernode转发相互间请求或形成edge之间的相互连接,具体视各edge网络结构而定

启动supernode

nohup supernode -l 33456 &>/dev/null &

注意:防火墙需要开放supernode监听的端口(udp 33456)

在supernode服务器上启动一个edge端

edge -a 10.2.0.11 -c edge0 -k mypassword -l 18.x.x.123:33456

Windows客户端

下载Windows客户端:https://github.com/lucktu/n2n

解压目录中edge.exe即为Windows客户端。在Windows系统中,如果没有TAP网卡,需要先安装有TAP网卡,而后才能使用edge。

安装TAP网卡步骤:

  1. windows+r输入hdwwiz.exe
  2. 安装手动从列表选择的硬件
  3. 选择网络适配器
  4. 选择TAP-Win32 Provider V9安装

Windows端启动

edge.exe -a 10.2.0.10 -c edge0 -k mypassword -l 18.x.x.123:33456

确认两端能够访问

首先确保edge端均已正常启动,无错误等。

查看网卡、IP,确认配置的虚拟IP已添加;如Windows端,10.2.0.10应当已自动设置到TAP网卡。

查看客户端日志,Linux端在系统日志中查看,Windows端默认为stdout输出;有类似如下REGISTER信息,表明edge正确的注册到了supernode,只有两端均已注册,才能够相互访问。

[PsP] Rx REGISTER src=00:FF:A8:BD:FB:75 dst=C6:F7:48:6D:CC:6B from sn=18.x.x.123:33456 (edge:183.x.x.252:37136)

通过基本检查ping等形式,确保两端可基本访问。而后则可通过虚拟IP自由访问对方任意端口、服务

服务暴露

需求描述:A(当前场景为supernode)为公网服务器,B(当前场景为Windows客户端)为局域网服务器,用户在任何地方访问A服务器WEB站点,A服务器通过n2n网络穿透将其访问代理到B服务器

  • A、B均已安装edge,并实现互通

以代理方式实现

实现步骤

  • A、B服务器已实现n2n互通
  • A服务器通过虚拟IP访问B服务器站点正常
  • A服务器安装Nginx
  • A服务器配置Nginx代理
  • 任意环境访问A服务器代理的站点
# 访问B服务器,确保其WEB服务正常
curl -I -o /dev/null -s -w %{http_code} 10.2.0.10# nginx代理配置
server {listen 80 ssl http2;listen [::]:80 http2;server_name n2n.example.com;index index.html index.htm;location / {proxy_redirect off;proxy_read_timeout 1200s;proxy_pass http://10.2.0.10;proxy_http_version 1.1;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $http_host;}
}# 配置完成后重载nginx配置

现在任意环境中访问A服务器80端口,访问域名为n2n.example.com,实际访问会被通过n2n两个端点的虚拟IP转发实现穿透效果。

以端口转发方式实现

访问公网服务器的30444端口,将其请求转发到n2n虚拟IP为10.2.0.10的服务器上

# 开启端口转发
echo 1 >/proc/sys/net/ipv4/ip_forward# 目标地址转换
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 30444 -j DNAT --to-destination 10.2.0.10:80# 源地址转换
iptables -t nat -A POSTROUTING -d 10.2.0.10 -p tcp --dport 80 -j SNAT --to-source 10.2.0.11

n2n内网穿透及代理服务相关推荐

  1. n2n内网穿透打洞部署全过程 + nginx公网端口映射

    内网穿透.打洞工具有很多,此前在windows上使用的是vidcc这个玩意,也正因为linux不支持.自此在linux尝试过一些打洞工具,ssh 反向代理这些,因为安全性不便捷等多种原因,最终选择了n ...

  2. 外网访问内网(内网穿透)方法总结

    自建服务器或者监控时,如何使外网设备访问到内网,是个麻烦问题. 这个任务称为内网穿透,解决方法通常是端口映射与端口转发. 网上关于端口映射与端口转发之间区别的讨论很多,观点也不尽相同,在此我也无意争辩 ...

  3. 【智能路由器】openwrt实现内网穿透(p2p、n2n)

    [智能路由器]系列文章连接 http://blog.csdn.net/u012819339/article/category/5803489 背景 有时候在对线上设备进行维护,由其是调试的时候希望技术 ...

  4. 利用frp进行内网穿透

    内网穿透是打破没有公网ip的桎梏,让处于内网的机器也能在远程使用ssh链接,让我这个机器学习算法工程师也能处在世界任何一个地方操纵自己的电脑.话不多说,开始教程. 需要的条件是,有一台有公网ip的服务 ...

  5. charles请求转发_用免费开源的frp实现内网穿透,使用nginx转发的方式去掉端口号...

    需要用内网穿透技术来实现通过其他公网 IP 来访问家里的 NAS 设备的需求,frp使用起来更加简便灵活,以及项目一直开源,所以本文选择frp作为示例 frp的github地址 :https://gi ...

  6. 采用.NET CORE的全异步模式打造一款免费的内网穿透工具--NSmartProxy

    什么是NSmartProxy? NSmartProxy是一款免费的内网穿透工具. 特点 跨平台,客户端和服务端均可运行在MacOS,Linux,Windows系统上: 使用方便,配置简单: 多端映射, ...

  7. frp + nginx 配置多人共用的http 内网穿透服务

    frp + nginx 配置多人共用的http 内网穿透服务 一. 前言 frp 是一个用Go语言开发的,可用于内网穿透的高性能的反向代理应用,支持 tcp, udp . http 和 https.可 ...

  8. 推荐 4 款超好用的内网穿透工具,总有一款适合你

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 1前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps- ...

  9. 推荐几款超好用的内网穿透神器,总有一款适合你!

    前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps-npc 1.1 简介 nps是一款轻量级.高性能.功能强大的内网穿透代理服务器.目前支持 ...

最新文章

  1. Hook KiUserExceptionDispatcher参数指针错误的问题
  2. CSDN 日报第 1 期:蚂蚁集团将向机构投资者退款;Pyston v2 发布 比 Python 快 20%
  3. 一个OA解决方案的经典模板
  4. 理解高性能Python
  5. mysql怎么切换用户_DB2迁移到Mysql
  6. 076 hashlib模块和hmac模块
  7. python绘制图像频谱_python傅里叶变换FFT绘制频谱图
  8. # Android12 wifi和4G同时使用
  9. python汇率换算注释_【菜鸟学Python】案例一:汇率换算
  10. 安卓桌面软件哪个好_每日提醒软件哪个好?电脑上有什么好用的可以每天提醒的桌面便签软件...
  11. 大数据千亿级离线数仓项目第三天 维度数据分析与业务开发
  12. 圣思园张龙-Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
  13. 在eclipse中查看jar包
  14. android 腾讯微博授权,5腾讯微博Android客户端开发获取请求用户授权Request Token.pdf...
  15. linux systemctl命令详解
  16. 微信公众号用户与网站用户的绑定方案
  17. CVPR 2021 结果出炉!最全论文下载及分类汇总(更新中)
  18. CSS实现鼠标不可点击,样式设置以及不可点击事件的行为
  19. win10用户账户控制怎么取消或打开
  20. 个人博客,Springboot + Vue搭建属于自己的博客

热门文章

  1. 2018个人总结《再见2018,你好2019》
  2. 普通二本,学这些东西,也能进大厂
  3. Centos查看磁盘占用,管理磁盘空间
  4. 30天,O2O速成攻略【7.18广州站】
  5. 绝妙的Python语句搜集整理
  6. 卷积神经网络用来估计锂离子电池的soc和soh
  7. 川崎机器人总线通信_川崎机器人 | EtherNet/IP安装使用说明
  8. kali2020自动登录
  9. qmail+vpopmail+mysql安装
  10. 段码液晶屏过ESD测试