内网 订阅
局域网的覆盖范围一般是方圆几千米之内,其具备的安装便捷、成本节约、扩展方便等特点使其在各类办公室内运用广泛。局域网可以实现文件管理、应用软件共享、打印机共享等功能,在使用过程当中,通过维护局域网网络安全,能够有效地保护资料安全,保证局域网网络能够正常稳定的运行。 [1] 展开全文
局域网的覆盖范围一般是方圆几千米之内,其具备的安装便捷、成本节约、扩展方便等特点使其在各类办公室内运用广泛。局域网可以实现文件管理、应用软件共享、打印机共享等功能,在使用过程当中,通过维护局域网网络安全,能够有效地保护资料安全,保证局域网网络能够正常稳定的运行。 [1]
信息
外文名
Local Area Network
硬    件
服务器、工作站、打印机、网卡
中文名
局域网
范    围
几千米以内
局域网简介
局域网自然就是局部地区形成的一个区域网络,其特点就是分布地区范围有限,可大可小,大到一栋建筑楼 与相邻建筑之间的连接,小到可以是办公室之间的联系。局域网自身相对其他网络传输速度更快,性能更稳定,框架简易,并且是封闭性,这也是很多机构选择的原因所在。局域网自身的组成大体由计算机设备、网络连接设备、网络传输介质3大部分构成,其中,计算机设备又包括服务器与工作站,网络连接设备则包含了网卡、集线器、交换机,网络传输介质简单来说就是网线,由同轴电缆、双绞线及光缆3大原件构成。 [2]  局域网是一种私有网络,一般在一座建筑物内或建筑物附近,比如家庭、办公室或工厂。局域网络被广泛用来连接个人计算机和消费类电子设备,使它们能够共享资源和交换信息。当局域网被用于公司时,它们就称为企业网络。 [3]  局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信网,通过专用数据线路与其他地方的局域网或数据库连接,形成更大范围的信息处理系统。局域网通过网络传输介质将网络服务器、网络工作站、打印机等网络互联设备连接起来,实现系统管理文件,共享应用软件、办公设备,发送工作日程安排等通信服务。局域网为封闭型网络,在一定程度上能够防止信息泄露和外部网络病毒攻击,具有较高的安全性,但是 一旦发生黑客攻击等事件,极有可能导致局域网整体出现瘫痪,网络内的所有工作无法进行,甚至泄露大量公司机密,对公司事业发展造成重创。2017 年国家发布《中华人民共和国网络安全法》, 6月1日正式施行,从法律角度对网络安全和信息安全做出 了明确规定,对网络运营者、使用者都提出了相应的要求,以提高网络使用的安全性。 [4] 
收起全文
精华内容
下载资源
问答
  • 十分钟教你配置frp实现内网穿透

    万次阅读 多人点赞 2018-11-30 09:53:34
    十分钟教你配置frp实现内网穿透 一、frp的作用 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个...

    十分钟教你配置frp实现内网穿透

    一、frp的作用

    • 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
    • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
    • 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

    二、配置说明

    1、实现功能

    (1)外网通过ssh访问内网机器

    (2)自定义绑定域名访问内网web服务

    2、配置前准备

    (1)公网服务器1台

    (2)内网服务器1台(我这里演示的是linux环境,win10上面vmware安装的centos7)

    (3)公网服务器绑定域名1个(实现二1中(1)功能不需要公网服务器绑定域名,二1中(2)功能必须需要公网服务器绑定域名)

    (4)内网服务器部署一个web服务,可以用tomcat模拟,这里就不演示了

    三、安装frp

    1、公网服务器与内网服务器都需要下载frp进行安装,公网服务器(服务端)配置关注步骤6,内网服务器(客户端)关注步骤7

    2、下载地址是https://github.com/fatedier/frp/releases,下载linux版本frp_0.13.0_linux_amd64.tar.gz,个人感觉下载速度有点慢,

     
    也可以这样选择下载wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

    3、新建目录mkdir -p /usr/local/frp,上传frp_0.13.0_linux_amd64.tar.gz至linux服务器该目录下

    4、解压tar -zxvf  frp_0.13.0_linux_amd64.tar.gz

    5、进入解压目录cd frp_0.13.0_linux_amd64,这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。

    6、配置服务端(公网服务器),首先删掉frpc、frpc.ini两个文件,然后再进行配置,vi ./frps.ini,

    [common]
    bind_port = 7000           #与客户端绑定的进行通信的端口
    vhost_http_port = 6081     #访问客户端web服务自定义的端口号
    

    保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &

    7、配置客户端(内网服务器),首先删掉frps、frps.ini两个文件,然后再进行配置,vi ./frpc.ini

    [common]
    server_addr = 120.56.37.48   #公网服务器ip
    server_port = 7000            #与服务端bind_port一致
    
    #公网通过ssh访问内部服务器
    [ssh]
    type = tcp              #连接协议
    local_ip = 192.168.3.48 #内网服务器ip
    local_port = 22         #ssh默认端口号
    remote_port = 6000      #自定义的访问内部ssh端口号
    
    #公网访问内部web服务器以http方式
    [web]
    type = http         #访问协议
    local_port = 8081   #内网web服务的端口号
    custom_domains = repo.iwi.com   #所绑定的公网服务器域名,一级、二级域名都可以
    

    保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &

    8、访问方式

    (1)外网ssh访问内网服务器(直接使用配置里面数据演示)

    ip:120.56.37.48  port:6000   用户名:linux服务器的用户  密码:linux服务器的密码        或者

    ip:120.56.37.48  port:22   用户名:linux服务器的用户  密码:linux服务器的密码            或者

    ip:repo.iwi.com  port:6000   用户名:linux服务器的用户  密码:linux服务器的密码         或者

    ip:repo.iwi.com  port:22   用户名:linux服务器的用户  密码:linux服务器的密码

     

    (2)自定义绑定域名访问内网web服务(直接使用配置里面数据演示)

      repo.iwi.com:6081


     

     

    展开全文
  • 钉钉内网穿透
  • 永久免费内网穿透很简单,一看就明白(长文)

    万次阅读 多人点赞 2019-07-30 20:16:18
    对于网络用户来说,一定都经历过出门在外无法直接在外网访问内网、或是难以部署异地远程桌面,因此心急如焚的情况;对于企业来说,无论是财务管理软件难以将分店信息同步到总部进行统计汇总、还是员工出差在外或在...

    对于网络用户来说,一定都经历过出门在外无法直接在异地访问公司的ERP系统、或是难以部署异地远程桌面,因此心急如焚的情况;对于企业来说,无论是财务管理软件难以将分店信息同步到总部进行统计汇总、还是员工出差在外或在家里就不能访问企业内部办公系统,都极大地影响了公司整体效率;对于个人开发者来说,微信小程序或者在线支付系统等开发环境往往需要一个可以环境进行调试,不然的话,难以进行开发调试。

    诸如此类的难题众多,但解决方法其实很简单,那就是使用软件或者自己手写一个,可以支持访问我的电脑上的微信支付接口,从而实现这一系列的简易操作。目前国内这方面企业级的服务商有**壳和神卓互联,我接触过很多公司在用,**壳的技术是PHTunnel ,神卓互联用的是Wangooe Tunnel技术,这里就介绍神卓互联的,接下来就介绍和分析这款软件的用法和技术要点。如果没有接触过这方面技术的同学可以看一下这个图:

    首先用法很简单,就是在界面上创建一条映射规则,填写应用名称和要连接的内网应用主机地址和端口号。

    填写自己要穿透的应用名称和端口号,如果需要获取原访问者IP最好是选择Web应用。提交提交就可以了。

    例如我需要发布一个Tomcat应用,访问端口号是7070,那么应用名称填写tomcat,内网主机填写127.0.0.1,内网端口填7070点提交就可以。

    首先新建一个web项目

     

    新建login.jsp登陆文件,内容如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>登录系统</title>
    <style type="text/css">
    table td{font: 14px/1.5 'Microsoft YaHei',arial,tahoma,\5b8b\4f53,sans-serif;}
    </style>
    </head>
    <body>
    <table>
    <tr><td>用户名</td><td><input type="text"></td></tr>
    <tr><td>密码</td><td><input type="text"></td></tr>
    <tr><td>&nbsp;</td><td><input type="submit" value="登录"></td></tr>
    </table>
    </body>
    </html>

    先在本地运行,看项目是否可以正常运行

    本地运行没有问题,可以正常打开,接下来就试一下外网访问

     

     

    打开神卓互联软件主界面,右键选择外网访问

    如果需要绑定域名访问的话也很简单,这里不多说。

    接下来就分析是如何做到将请求转发到内网因为又返回给访问客户端的。

    InetAddress

    //获取本机的InetAddress实例
    InetAddress address =InetAddress.getLocalHost();
    address.getHostName();//获取计算机名
    address.getHostAddress();//获取IP地址
    byte[] bytes = address.getAddress();//获取字节数组形式的IP地址,以点分隔的四部分
     
    //获取其他主机的InetAddress实例
    InetAddress address2 =InetAddress.getByName("其他主机名");
    InetAddress address3 =InetAddress.getByName("IP地址");

    URL类

    //创建一个URL的实例
    URL baidu =new URL("http://www.baidu.com");
    URL url =new URL(baidu,"/index.html?username=tom#test");//?表示参数,#表示锚点
    url.getProtocol();//获取协议
    url.getHost();//获取主机
    url.getPort();//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1
    url.getPath();//获取文件路径
    url.getFile();//文件名,包括文件路径+参数
    url.getRef();//相对路径,就是锚点,即#号后面的内容
    url.getQuery();//查询字符串,即参数

    以下就是P2P打洞核心代码(TCP)

    假设现在有以下3台机器:

    外网机器,IP:121.56.21.85 , 以下简称“主机A”

    处在内网1下的机器,外网IP:106.116.5.45 ,内网IP:192.168.1.10, 以下简称“主机1”

    处在内网2下的机器,外网IP:104.128.52.6 ,内网IP:192.168.0.11,以下简称“主机2”

    很显然内网的两台机器不能直接连接,我们现在要实现的是借助外网机器,让两台内网机器进行tcp直连通讯。

    实现过程如下:

    1、主机A启动服务端程序,监听端口8888,接受TCP请求。

    2、启动主机1的客户端程序,连接主机A的8888端口,建立TCP连接。

    3、启动主机2的客户端程序,连接主机A的8888端口,建立TCP连接。

    4、主机2发送一个命令告诉主机A,我要求与其他设备进行连接,请求协助进行穿透。

    5、主机A接收到主机2的命令之后,会返回主机1的外网地址和端口给主机2,同时把主机2的外网地址和端口发送给主机1。

    6、主机1和主机2在收到主机A的信息之后,同时异步发起对对方的连接。

    7、在与对方发起连接之后,监听本地与主机A连接的端口(也可以在发起连接之前),(由于不同的操作系统对tcp的实现不尽相同,有的操作系统会在连接发送之后,把对方的连接当作是回应,即发出SYN之后,把对方发来的SYN当作是本次SYN的ACK,这种情况就不需要监听也可建立连接,本文的代码所在测试环境就不需要监听,测试环境为:服务器centos 7.3, 内网1 win10,内网2 win10和centos7.2都测试过)。

    8、主机1和主机2成功连上,可以关闭主机A的服务,主机1和主机2的连接依然会持续生效,不关闭就形成了一个3方直连的拓扑网状结构网络。

    服务器端代码:

    package org.inchain.p2p;
     
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.ArrayList;
    import java.util.List;
     
    /**
     * 外网端服务,穿透中继
     * 
     * @author ln
     *
     */
    public class Server {
     
    	public static List<ServerThread> connections = new ArrayList<ServerThread>();
     
    	public static void main(String[] args) {
    		try {
    			// 1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
    			ServerSocket serverSocket = new ServerSocket(8888);
    			Socket socket = null;
    			// 记录客户端的数量
    			int count = 0;
    			System.out.println("***服务器即将启动,等待客户端的连接***");
    			// 循环监听等待客户端的连接
    			while (true) {
    				// 调用accept()方法开始监听,等待客户端的连接
    				socket = serverSocket.accept();
    				// 创建一个新的线程
    				ServerThread serverThread = new ServerThread(socket);
    				// 启动线程
    				serverThread.start();
     
    				connections.add(serverThread);
     
    				count++;// 统计客户端的数量
    				System.out.println("客户端的数量:" + count);
    			}
    			
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    package org.inchain.p2p;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.Socket;
     
    /**
     * 外网端服务多线程处理内网端连接
     * 
     * @author ln
     *
     */
    public class ServerThread extends Thread {
    	// 和本线程相关的Socket
    	private Socket socket = null;
    	private BufferedReader br = null;
    	private PrintWriter pw = null;
    	
     
    	public ServerThread(Socket socket) throws IOException {
    		this.socket = socket;
    		this.br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    		this.pw = new PrintWriter(socket.getOutputStream());
    	}
     
    	// 线程执行的操作,响应客户端的请求
    	public void run() {
     
    		InetAddress address = socket.getInetAddress();
    		System.out.println("新连接,客户端的IP:" + address.getHostAddress() + " ,端口:" + socket.getPort());
     
    		try {
    			pw.write("已有客户端列表:" + Server.connections + "\n");
     
    			// 获取输入流,并读取客户端信息
    			String info = null;
    			
    			while ((info = br.readLine()) != null) {
    				// 循环读取客户端的信息
    				System.out.println("我是服务器,客户端说:" + info);
     
    				if (info.startsWith("newConn_")) {
    					//接收到穿透消息,通知目标节点
    					String[] infos = info.split("_");
    					//目标节点的外网ip地址
    					String ip = infos[1];
    					//目标节点的外网端口
    					String port = infos[2];
    					
    					System.out.println("打洞到 " + ip + ":" + port);
    					
    					for (ServerThread server : Server.connections) {
    						if (server.socket.getInetAddress().getHostAddress().equals(ip)
    								&& server.socket.getPort() == Integer.parseInt(port)) {
    							
    							//发送命令通知目标节点进行穿透连接
    							server.pw.write("autoConn_" + socket.getInetAddress().getHostAddress() + "_" + socket.getPort()
    									+ "\n");
    							server.pw.flush();
    							
    							break;
    						}
    					}
    				} else {
    					// 获取输出流,响应客户端的请求
    					pw.write("欢迎您!" + info + "\n");
    					// 调用flush()方法将缓冲输出
    					pw.flush();
    				}
    				
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			System.out.println("客户端关闭:" + address.getHostAddress() + " ,端口:" + socket.getPort());
    			Server.connections.remove(this);
    			// 关闭资源
    			try {
    				if (pw != null) {
    					pw.close();
    				}
    				if (br != null) {
    					br.close();
    				}
    				if (socket != null) {
    					socket.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
     
    	@Override
    	public String toString() {
    		return "ServerThread [socket=" + socket + "]";
    	}
    }

    最后附上测试方法和运行效果:

    使用方法:
    1、在服务器启动Server。
    2、在客户端1启动Client,输入notwait命令,等待服务器通知打洞。
    3、在客户端2启动Client,输入conn命令,然后输入服务器返回的客户端1的外网ip和端口,接下来就会自动完成连接。
    运行效果:
    客户端1运行结果 (穿透成功之后,客户端会把穿透对方返回的内容发送给服务器,服务器再返回)

    客户端1使用netstat查看的网络连接

    客户端2的运行结果

    客户端2使用netstat查看的网络连接


    可以看到客户端2对应的端口不同,那是因为电信NAT的问题,本地获取的Ip是电信10开头的内网地址,相当于在客户端2的上层还进行了一次中继。

    s:由于没有对称型的NAT设备,无法做深入研究,对称型设备的端口太难猜测,穿透成功概率很小。

     

     

     

     

    展开全文
  • 使用frp内网穿透

    万次阅读 2021-05-02 10:51:03
    下载frp 地址 外网端准备一个有公网IP的...local_ip:内网服务器ip local_port:内网服务器的http服务端口 remote_port:用于远程ssh的端口 通过ssh远程连接内网终端 ssh -p 6001 root@公网IP 访问web服务 公网IP:80

    下载frp
    地址

    外网端准备一个有公网IP的服务器做服务端,我是用的是阿里云服务器

    服务端
    配置监听端口和http访问端口
    在这里插入图片描述
    客户端
    在这里插入图片描述

    • server_addr:公网阿里云服务器的IP
    • server_port:和服务端一致
    • type:http为网页服务,ssh为ssh服务
    • local_ip:内网服务器ip
    • local_port:内网服务器的http服务端口
    • remote_port:用于远程ssh的端口

    通过ssh远程连接内网终端

    ssh -p 6001 root@公网IP
    

    访问web服务

    公网IP:8006
    
    设置frp自启

    frpc

    vim /etc/systemd/system/frpc.service

    [Unit]
    Description=frpc daemon
    After=syslog.target  network.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=frpc -c frpc.ini # 对应目录
    Restart=always
    RestartSec=1min
    ExecStop=/usr/bin/killall frpc
    
    [Install]
    WantedBy=multi-user.target
    

    frps

    vim /etc/systemd/system/frps.service

    [Unit]
    Description=frpc daemon
    After=syslog.target  network.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/opt/frp_0.36.2_linux_amd64/frps -c /opt/frp_0.36.2_linux_amd64/frps.ini
    Restart=always
    RestartSec=1min
    ExecStop=/usr/bin/killall frps
    
    [Install]
    WantedBy=multi-user.target
    
    
    展开全文
  • 本文主要介绍了FRP的搭建及不同目的下的配置方式,以实现内网穿透,远程访问内网服务器。

    使用FRP实现内网穿透,远程访问内网服务器

    frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
    在这里插入图片描述

    相比ngrok,frp内网穿透无需多复杂的配置就可以达到比较好的穿透效果,具有较强的扩展性,支持 tcp, udp, http, https 协议。

    在学习搭建前,首先需要理解什么是代理。

    Proxy即代理,被广泛应用于计算机领域,主要分为正向代理与反向代理:

    正向代理

    正向代理隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问http://www.google.com时被墙了,于是你可以在国外搭建一台代理服务器,让代理帮我去请求 google,代理把请求返回的相应结构再返回给我。
    在这里插入图片描述
    当多个客户端访问服务器时服务器不知道真正访问自己的客户端是那一台。正向代理中,proxy和client同属一个LAN,对server透明。
    在这里插入图片描述

    反向代理

    反向代理隐藏了真实的服务端,当我们请求 ww.baidu.com 的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道 www.baidu.com 是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。
    在这里插入图片描述
    反向代理中,proxy和server同属一个LAN,对client透明。

    在这里插入图片描述
    FRP实现内网穿透,就在于使用反向代理,使得真实的服务端得以隐藏。当外部用户(client)请求访问服务端VPS的时候,服务端VPS是下图中的客户端(实质上是上图中的server)的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器(下图中的客户端)那里去。这样就实现了内网穿透。

    即:
    Client = 外部用户
    proxy = 公网服务器(需要在服务器上搭建FRP服务端)
    Server = 内网服务器(需要在服务器上搭建FRP客户端)

    通过Internet 访问
    FRP
    Client
    proxy
    Server
    通过Internet 访问
    FRP
    外部用户
    FRP服务端 公网服务器
    FRP客户端 内网服务器
    需要提前准备的材料:
    1. 公网服务器1台(国外服务器需要关闭时间戳校验)
    2. 内网服务器1台
    3. 公网服务器绑定域名1个(可选项)

    需要额外注意的事项:

    1. 注意,除http(s)以外,客户端frpc.ini内任何端口修改时须在以下范围内:
      默认端口白名单:2000-3000,3001,3003,4000-50000

    2. 转发远程桌面时,需先在本机开启允许远程协助 我的电脑-右键属性-远程设置

    3. 需要注意frpc所在机器和frps所在机器的时间相差不能超过15分钟,因为时间戳会被用于加密验证中,防止报文被劫持后被其他人利用。

    一、基本配置

    服务端(公网服务器)编辑的是:frps.ini

    客户端编辑的是:frpc.ini

    (1)服务端部署(Linux VPS)

    配置 FRP 服务端的前提条件是需要一台具有公网 IP的设备,得益于 FRP 是 Go 语言开发的,具有良好的跨平台特性。你可以在 Windows、Linux、MacOS、ARM等几乎任何可联网设备上部署。

    sudo apt-get update
    
    wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz
    
    tar -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
    bind_port = 7000            # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致
    authentication_timeout = 0  # 如果是使用了国外服务器,需要使用此行关闭时间戳校验
    
    #在frp_0.17.0_linux_amd64目录下,临时启动命令
    ./frps -c ./frps.ini
    
    #后台保持启动
    nohup ./frps -c ./frps.ini &
    

    设置为开机自动启动

    sudo vim /etc/systemd/system/frps.service
    
    [Unit]
    Description=frps daemon
    After=syslog.target  network.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/root/frp_0.17.0_linux_amd64/frps -c /root/frp_0.17.0_linux_amd64/frps.ini
    Restart= always
    RestartSec=1min
    
    [Install]
    WantedBy=multi-user.target
    

    注意ExecStart中要配置成自己的绝对路径,绝对路径可以通过pwd命令查询。

    #启动frps
    systemctl daemon-reload
    systemctl start frps
    
    #设置为开机启动
    systemctl enable frps
    

    (2)客户端部署(以树莓派为例)

    sudo apt-get update
    
    wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz
    
    tar -zxvf frp_0.17.0_linux_arm.tar.gz  #解压缩:tar xvf 文件名
    
    cd frp_0.17.0_linux_arm                #进入解压目录
    
    #修改frpc.ini文件
    sudo vim ./frpc.ini
    
    添加以下内容:
    
    [common]
    server_addr = your_server_ip               #VPS服务器IP
    server_port = 7000                         #端口,与服务端bind_port一致  
    
    #临时启动
    ./frpc -c ./frpc.ini
    
    #后台保持启动
    nohup ./frpc -c ./frpc.ini &
    

    设置为开机自动启动

    sudo vim /etc/systemd/system/frpc.service
    
    [Unit]
    Description=frpc daemon
    After=syslog.target  network.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/home/pi/frp_0.17.0_linux_arm/frpc -c /home/pi/frp_0.17.0_linux_arm/frpc.ini
    Restart= always
    RestartSec=1min
    
    [Install]
    WantedBy=multi-user.target
    
    #启动frpc
    systemctl daemon-reload
    systemctl start frpc
    
    #设置为开机启动
    systemctl enable frpc
    

    这样就可以在 FRP 服务端上成功建立一个客户端连接,当然现在还并不能对外提供任何内网机器上的服务,因为我们并还没有在 FRP 服务端注册任何内网服务的端口。

    二、配置文件 frps.ini / frpc.ini进一步部署(下面内容包含上述基本配置内容)

    (1)服务端部署(Linux VPS)

    [common]
    bind_addr = 0.0.0.0
    bind_port = 7000            # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致
    privilege_token = 123456    # 特权模式密钥,需与客户端frpc.ini一致
    
    vhost_http_port = 8080      # http服务端口,开启后服务端完成通过域名访问部署于内网的 Web 服务部署,这里将 HTTP 访问端口设为 8080
    vhost_https_port = 443      # https服务端口
    
    dashboard_port = 7500       # 控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面,用户名密码默认都为 admin。
    

    Dashboard 界面:
    在这里插入图片描述
    在这里插入图片描述
    注意:面板上所有转发的端口都需要在服务器端开放其防火墙!!!
    注意:面板上所有转发的端口都需要在服务器端开放其防火墙!!!
    注意:面板上所有转发的端口都需要在服务器端开放其防火墙!!!
    在这里插入图片描述
    在这里插入图片描述

    如开放端口5900
    iptables -I INPUT -i eth0 -p tcp --dport 5900 -j ACCEPT
    iptables  -I OUTPUT -o eth0 -p tcp --sport 5900 -j ACCEPT
    

    (2)客户端部署(后附每个穿透方案的详解)

    [common]
    server_addr = your_server_ip               #VPS服务器IP
    server_port = 7000                         #端口,与服务端bind_port一致  
    privilege_token = 123456                   #自定义值,需和服务端frps.ini的一致
    
    login_fail_exit = false                    #失败时自动重连
    
    admin_addr = 127.0.0.1                     #开启后可通过热加载方式进行 FRP 客户端配置变更  
    admin_port = 7400                          #可以通过 frpc reload 命令来动态加载配置文件,通过 frpc status -c ./frpc.ini 命令在 FRP 客户端查看当前代理状态信息。
    
    #通过 TCP 访问内网机器:
    #1.公网通过ssh访问内部服务器  
    [ssh]
    type = tcp                                 #连接协议 
    local_ip = 127.0.0.1                       #内网服务器ip,填你需要转发到的目的ip
    local_port = 22                            #ssh默认端口
    remote_port = 8000                         #自定义的访问内部ssh端口号
    
    #2.公网通过ftp(如使用WinSCP)访问内部服务器  
    [ftp]
    type = tcp
    local_ip = 127.0.0.1                            
    local_port = 21,10000-10010                #FTP默认端口
    remote_port = 2121,10000-10010             #自定义的远程访问端口  使用:打开WinSCP,填写主机IP(VPS的公网IP)、端口(自定义的远程访问端口2121 )、用户名密码(树莓派的用户名和密码) 。也可以通过访问  ftp://服务端IP:2121
    
    #3.公网通过VNC远程访问图像化内部服务器
    # 自定义一个配置名称,格式为“[range:名称]”,放在开头
    [range:VNC]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 5900                          #vnc默认端口
    remote_port = 5900                         #远程端口,ssh远程树莓派时使用的端口  
    
    #通过 UDP 访问内网机器
    [dns]
    type = udp
    local_ip = 8.8.8.8
    local_port = 53
    remote_port = 8500
    
    #通过 FRP 客户端代理其它内网机器访问外网
    [http_proxy]
    type = tcp
    remote_port = 9000
    plugin = http_proxy
    
    #通过自定义域名访问部署于内网的 Web 服务
    [web]  
    type = http                                #访问协议
    local_ip = 127.0.0.1                       #内网服务器ip 
    local_port = 80                            #内网web服务的端口号  
    custom_domains = www.dengxj.com,dengxj.com   
    #所绑定的公网服务器域名,一级、二级域名都可以,绑定多个域名时用英文“,”分开
    

    详解:

    [common]
    默认情况下只要知道 FRP 服务端开放的端口,任意 FRP 客户端都可以随意在服务端上注册端口映射
    这样对于在公网上的 FRP 服务来说显然不太安全。FRP 提供了身份验证机制来提高 FRP 服务端的安全性
    启用这一特性后,只有 FRP 服务端和客户端的 common 配置中的 privilege_token 参数一致身份验证才会通过
    

    通过 TCP 访问内网机器

    SSH 通常使用 UDP 协议
    [ssh]
    type = tcp                                 #连接协议 
    local_ip = 127.0.0.1                       #内网服务器ip
    local_port = 22                            #ssh默认端口
    remote_port = 8000                         #自定义的访问内部ssh端口号
    
    以访问 SSH 服务为例, 修改 FRP 客户端配置文件
    这样就在 FRP 服务端上成功注册了一个端口为 8000 的服务
    可以通过这个端口访问内网机器上 SSH 服务
    

    通过 UDP 访问内网机器

    DNS 查询请求通常使用 UDP 协议
    配置方式和 TCP 基本一致
    [dns]
    type = udp                                #连接协议 
    local_ip = 8.8.8.8                        #内网服务器ip
    local_port = 53                           #ssh默认端口
    remote_port = 8500                        #自定义的访问内部ssh端口号
    
    这里以转发到 Google 的 DNS 查询服务器 8.8.8.8UDP 端口为例。
    要转发到内网 DNS 服务器只需把 local_ip 改成对应 IP 即可。
    

    通过 FRP 客户端代理其它内网机器访问外网

    FRP 客户端内置了 http_proxy 和 socks5 插件
    通过这两个插件可以使其它内网机器通过 FPR 客户端的的网络访问互联网。
    [http_proxy]
    type = tcp
    remote_port = 9000
    plugin = http_proxy
    
    其次将需要通过这个代理访问外网的内部机器的代理地址设置为 服务器IP:9000
    这样就可以通过 FRP 客户端机器的网络访问互联网了
    如需启用 Socks5 代理,只需将 plugin 的值更换为 socks5 即可
    

    通过自定义域名访问部署于内网的 Web 服务 点此查看实例

    通过自定义域名访问部署于内网的 Web 服务:
    [web]  
    type = http                                #访问协议
    local_ip = 127.0.0.1                       #内网服务器ip 
    local_port = 80                            #内网web服务的端口号  
    custom_domains = 二级域名全称(eg. nwct.dengxj.com)
    
    有时需要在公有网络通过域名访问我们在本地环境搭建的 Web 服务
    但是由于本地环境机器并没有公网 IP,无法将域名直接解析到本地的机器
    服务端 vhost_http_port 参数 设置 HTTP 访问端口
    客户端 local_port 参数 设置内网web服务的端口号
    最后将 ..com 的域名 A 记录解析到 FRP 服务器的公网 IP 上,现在便可以通过 http://.*.com:8080 这个 URL 访问到处于内网机器上对应的 Web 服务。
    即:输入 http://nwct.dengxj.com:8080 访问 内网 IP:80 内容
    

    三、高阶应用

    1. 通过代理连接 FRP 服务端

    在只能通过代理访问外网的环境内,FRP 客户端支持通过 HTTP_PROXY 参数来配置代理和 FRP 服务端进行通信。要使用此功能可以通过设置系统环境变量 HTTP_PROXY 或者通过在 FRP 客户端 的配置文件中设置 http_proxy 参数来使用此功能。

    [common]
    server_addr = your_server_ip
    server_port = 7000
    protocol = tcp
    http_proxy = http://user:pwd@your_server_ip:8080
    

    2. 安全地暴露内网服务(STCP)

    对于一些比较敏感的服务如果直接暴露于公网上将会存在安全隐患,FRP 也提供了一种安全的转发方式 STCP。使用 STCP (secret tcp) 类型的代理可以避免让任何人都能访问到穿透到公网的内网服务,要使用 STCP 模式访问者需要单独运行另外一个 FRP 客户端。

    Internet
    FRP
    客户端
    服务端VPS
    客户端

    下面就以创建一个只有自己能访问到的 SSH 服务代理为例,FRP 服务端和其它的部署步骤相同,主要区别是在 FRP 客户端上。

    [common]
    server_addr = your_server_ip
    server_port = 7000
    
    [secret_ssh]
    type = stcp
    sk = abcdefg               # 只有 sk 一致的用户才能访问到此服务
    local_ip = 127.0.0.1
    local_port = 22
    

    其次在要访问这个服务的机器上启动另外一个 FRP 客户端,配置如下:

    [common]
    server_addr = your_server_ip
    server_port = 7000
    
    [secret_ssh_visitor]
    type = stcp
    role = visitor             # STCP 的访问者
    server_name = secret_ssh   # 要访问的 STCP 代理的名字,和前面定义的[secret_ssh]相同。
    sk = abcdefg               # 和前面定义的要一致
    bind_addr = 127.0.0.1      # 绑定本地端口用于访问 ssh 服务
    bind_port = 6005
    

    这样就可以通过本机 6005 端口对内网机器 SSH 服务进行访问。

    3. 点对点内网穿透

    在传输大量数据时如果都经过服务器中转的话,这样会对服务器端带宽压力比较大。

    FRP 提供了一种新的代理类型 XTCP 来解决这个问题,XTCP 模式下可以在传输大量数据时让流量不经过服务器中转。

    Internet
    FRP
    客户端
    服务端VPS
    客户端

    使用方式同 STCP 类似,需要在传输数据的两端都部署上 FRP 客户端上用于建立直接的连接。

    首先在 FRP 服务端 配置上增加一个 UDP 端口用于支持该类型的客户端: bind_udp_port = 7001

    [common]
    bind_addr = 0.0.0.0
    bind_port = 7000            # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致
    privilege_token = 123456    # 特权模式密钥,需与客户端frpc.ini一致
    
    vhost_http_port = 8080      # http服务端口,开启后服务端完成通过域名访问部署于内网的 Web 服务部署,这里将 HTTP 访问端口设为 8080
    vhost_https_port = 443      # https服务端口
    
    dashboard_port = 7500       # 控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面,用户名密码默认都为 admin。
    
    bind_udp_port = 7001
    

    其次配置 FRP 客户端,和常规 TCP 转发不同的是这里不需要指定远程端口。
    修改前:

    [common]
    server_addr = your_server_ip
    server_port = 7000
    
    [ssh]
    type = tcp                  #连接协议 
    local_ip = 127.0.0.1        #内网服务器ip
    local_port = 22             #ssh默认端口
    remote_port = 8000          #自定义的访问内部ssh端口号
    

    修改后:

    [common]
    server_addr = your_server_ip
    server_port = 7000
    
    [p2p_ssh]
    type = xtcp
    sk = abcdefg                # 只有 sk 一致的用户才能访问到此服务
    local_ip = 127.0.0.1
    local_port = 22
    

    然后在要访问这个服务的机器上启动另外一个 FRP 客户端,配置如下:

    [common]
    server_addr = your_server_ip
    server_port = 7000
    
    [p2p_ssh_visitor]
    type = xtcp
    role = visitor              # XTCP 的访问者
    server_name = p2p_ssh       # 要访问的 XTCP 代理的名字
    sk = abcdefg
    bind_addr = 127.0.0.1       # 绑定本地端口用于访问 ssh 服务
    bind_port = 6006
    

    这样就可以通过本机 6006 端口对内网机器 SSH 服务进行访问。

    目前 XTCP 模式还处于开发的初级阶段,并不能穿透所有类型的 NAT 设备,所以穿透成功率较低。穿透失败时可以尝试 STCP 的方式。

    这里以SSH为例:

    在这里插入图片描述

    参考:
    1: https://blog.csdn.net/u012636124/article/details/86618424
    2: https://blog.csdn.net/u012636124/article/details/86770279
    3: https://www.jianshu.com/p/00c79df1aaf0

    展开全文
  • 内网渗透

    千次阅读 多人点赞 2020-10-04 06:26:56
    目录什么是外网渗透什么是内网渗透域工作组 什么是外网渗透 外网更侧重于找漏洞寻找突破口 举个简单的例子: 把渗透测试当做去偷某家超市的某个商品。外网渗透就是突破超市的大门,进入超市。 想要进入超市,这个...
  • 内网-内网安全攻防-笔记.pdf
  • EW内网渗透

    2018-05-06 18:24:39
    EW内网渗透 EW内网渗透 EW内网渗透 EW内网渗透 EW内网渗透 EW内网渗透
  • 开源内网突破代理服务器商用平台系统内网突破项目始于2017年,对于学习golang实现复杂系统很有潜力,现在开源出来一起交流。另外推荐更强的代理工具加内网穿透工具goproxy,拥有图形化管理 运行 网页控制台
  • 内网建站 NAT穿透 局域网穿透

    万次阅读 2020-10-11 16:42:16
    一直想搭建个人的博客,但是买云服务器一年动则几千少则几百,想到家里有一台空闲的笔记本,于是乎想到了内网穿透~ 准备工作: 个人电脑一台,小蝴蝶内网穿透 步骤一: 搭建好内网博客此时内网效果如下...
  • 内网渗透讲义

    2019-03-22 14:33:45
    内网渗透讲义
  • 内网扫描

    2012-01-08 15:43:02
    内网扫描内网扫描
  • 如何通过natapp来实现内网穿透

    万次阅读 2021-04-14 11:27:57
    如何使用natapp来实现内网穿透使用natapp来实现内网穿透1. 业务场景2. 什么是内网穿透?3. 如何使用内网穿透?4. 实际案例 使用natapp来实现内网穿透 natapp为成都三百牛信息技术有限公司旗下产品,公司为解决财务...
  • 内网渗透实战技巧

    万次阅读 多人点赞 2019-12-13 15:34:03
    目录 拿下Web服务器 phpmyadmin后台getshell 后渗透第一步 ...内网主机信息收集 内网存活主机探测 内网存活主机端口扫描 内网存活主机服务探测 内网横向渗透攻击技巧 MS17-010 CVE-2019-0708 pse...
  • 内网-利用WinRM实现内网无文件落地攻击.pdf
  • 相信上网的人都知道,电脑之间的通信是通过ip地址通信的,但是很少人知道ip地址又分为外网ip和内网ip,了解检测外网还是内网ip的人更是少之又少,今天小编给大家普及一下这方面的知识。 外网ip和内网ip的区别是什么...
  • 内网地址+内网穿透

    千次阅读 2019-06-19 13:15:33
    内网内网也就是局域网,内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接...
  • 神盾内网管理软件具有神盾透明加密系统;神盾监控管理系统;神盾移动存储系统;神盾桌面安全系统;神盾终端准入系统;神盾违规外联系统;神盾主机监控审计能够帮助企业更好的
  • 内网自动映射内网自动映射
  • 内网穿透工具.rar

    2019-10-31 16:00:23
    内网穿透工具内网
  • 什么内网穿透?如何使用内网穿透?

    千次阅读 多人点赞 2020-11-01 16:13:36
    什么是内网穿透? 内网穿透也叫做内网映射,也叫“NAT穿透” 一句话来说就是,让外网能访问你的内网;把自己的内网(主机)当成服务器,让外网能访问。 原理图解如下: 使用内网穿透有什么好处? 没钱买服务器,...
  • 内网发起连接

    2016-07-21 13:36:38
    内网发起连接
  • 内网穿透工具的原理与开发实战

    万次阅读 多人点赞 2019-03-31 02:38:22
    本文主要介绍了内网穿透工具的原理与开发实战。
  • 阿里云服务器实现 frp 内网穿透

    万次阅读 多人点赞 2018-09-18 15:18:14
    本文主要介绍在阿里云服务器上实现 frp 内网穿透,并配置多个客户端,最后通过配置安全组规则解决 connection timeed out错误。
  • 内网准入管理制度

    2018-04-11 11:26:06
    内网准入管理制度 内网准入管理制度 内网准入管理制度
  • 内网带宽测试工具

    2018-06-21 16:17:18
    内网带宽测试工具,用于测试内网网络带宽是否正常内网带宽测试工具,用于测试内网网络带宽是否正常
  • • 运维修改内网DNS,将内网域名指向新的IP,如果是短连接调用,未来新的请求流量,自然会切到新的IP上;如果是长连接调用,新的长连接会连到新的IP上,但旧的长连接仍然连接的是旧IP • 运维统一将旧IP上的连接切断...
  • Ngrok 实现内网穿透教程(Ngrok 和 Sunny-Ngrok )

    万次阅读 多人点赞 2018-12-03 17:23:42
    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看...(简而言之就是将内网IP映射成对外可访问的域名) Ngrok使用流程如下: 从https://ngrok...
  • 内网并发测试工具

    2019-07-24 15:58:48
    内网并发测试工具,做接口测试必备工具,内网调试,高并发调试测试工具
  • 内网渗透指南

    2018-11-13 10:03:01
    内网渗透指南。获取目标的主机存活信息和端口开放信息后,就可以尝试分析目标的网络结构,安全防御策略。按照办公网和生产网分别说一下。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 211,613
精华内容 84,645
关键字:

内网