Frp 及 Coturn 内网穿透

Frp 及 Coturn 内网穿透





Frp 及 Coturn  内网穿透



Frp 内网穿透 服务器 搭建

    Linux 服务器端

        # getconf LONG_BIT        \\ 查询 Linux 系统位数
        # wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
        # tar zxvf frp_0.37.0_linux_amd64.tar.gz -C /usr/local
        # cd /usr/local
        # mv frp_0.37.0_linux_amd64 frp_0.37
        # cd frp_0.34
        # vim frps.ini                \\ 服务器端主配置文件 替换即可   端口可自定义 没有冲突即可
            [common]
            bind_port = 7000
            host_http_port = 8090        \\ 此为映射内网的http端口 可使用nginx反向代理到127.0.0.1:8090进行访问
            #vhost_https_port = 443

            subdomain_host = frp.ssyy99.com  \\ 绑定个域名 可以在解析下级域名使用 比较繁琐 这条没什么大用 可注释可直接解析域名
            token = xxx                       \\ FRP 身份验证

            dashboard_addr = 0.0.0.0      \\ 服务器端 管理界面
            dashboard_port = 7500          \\ FRPS 服务端 仪表盘的登陆端口 使用 http://IP:7500 访问
            dashboard_user = admin          \\ 登陆用户名 密码
            dashboard_pwd = admin123

            log_level = info              \\ 设置日志显示级别{debug, info, warn, error)
            log_max_days = 999             \\ 设置日志最大天数

        # nohup ./frps -c frps.ini &         \\ 启动命令
        # ps -ef | grep frps
        # ss -tnl                              \\ 7000端口被监听

        # vim /etc/systemd/system/frps.service   \\ 添加 systemd 管理
            [Unit]
            Description=frps
            After=network.target

            [Service]
            ExecStart=/usr/local/frp_0.37/frps -c /usr/local/frp_0.37/frps.ini

            [Install]
            WantedBy=multi-user.target


        # systemctl restart frps
        # ss -tnl

        http://47.91.219.64:7500       \\ 访问


    Linux 客户端

        # getconf LONG_BIT                 \\ 查询 Linux 系统位数
        # wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
        # tar zxf frp_0.37.0_linux_amd64.tar.gz -C /usr/local/
        # cd /usr/local
        # mv frp_0.37.0_linux_amd64 frp_0.37
        # cd frp_0.34
        # vim frpc.ini        \\ 客户端 配置文件
            [common]

            server_addr = 47.91.219.64           \\ 服务器端的ip或域名
            server_port = 7000                    \\ 服务器端口7000
            token = xxx                            \\ FRP 身份验证 与服务器端对上即可

            # frpc.ini 管理界面 127.0.0.1 地址为仅限本地,0.0.0.0为不限。
            admin_addr = 0.0.0.0       \\ 客户端管理界面  192.168.10.11:7400 访问  好像不管用 但无所有可以映射端口
            admin_port = 7400
            admin_user = admin
            admin_pwd = admin123

            # 
            # ------------------- 以下为内网端口穿透应用 写进去需要的即可-------------------
            # 

            # 映射内网ssh 22端口 到 5522端口
            # 使用 #root@frp.nasge.com -p 5522
            # 使用 #ssh 47.91.219.64 5522
            [ssh]
            type = tcp
            local_ip = 127.0.0.1
            local_port = 22          \\ ssh 实际端口
            remote_port = 5522        \\ 映射出的 ssh 端口 使用 ssh 47.91.219.64:5522 来连接


            [web_47.91.219.64]
            type = http
            local_ip = 127.0.0.1
            local_port = 80                \\ 本地的http 端口
            custom_domains = 47.91.219.64   \\ 绑定完整域名或使用ip也可以 域名解析到此使用47.91.219.64:8090访问亦可使用反代
            #subdomain = abc  \\ 如果在服务器中的 subdomain_host 绑定了域名 这里可以使用前缀解析 使用 abc.frp.ssyy99.com 访问


            [web_www.ssyy99.com]             \\ 有多个 web 可以添加多个
            type = http
            local_ip = 127.0.0.1
            local_port = 80
            custom_domains = www.ssyy99.com


            [custom]                   \\ 自定义 tcp 端口 名字而已 随便起
            type = tcp
            local_ip = 127.0.0.1
            local_port = 80               \\ 把本地端口映射 到 服务器的8021端口
            remote_port = 8021


        # nohup ./frpc -c frpc.ini &         \\ 启动命令
        # ps -ef | grep frpc
        # ss -tnl                              \\ 7400端口被监听

        # vim /etc/systemd/system/frpc.service   \\ 添加 systemd 管理
            [Unit]
            Description=frpc
            After=network.target

            [Service]
            ExecStart=/usr/local/frp_0.37/frpc -c /usr/local/frp_0.37/frpc.ini

            [Install]
            WantedBy=multi-user.target


        # systemctl restart frpc
        # ss -tnl


        ssh 47.91.219.64 5522             \\ 可以连接到内网
        http://47.91.219.64:7500           \\ 访问服务器端的管理界面
        http://47.91.219.64:8090            \\ 访问内网的 http 网页 web



    Windows 客户端                                \\ 客户端版本要与服务器版本相同

        https://github.com/fatedier/frp/releases   \\ 下载 frp_0.37.0_windows_amd64.zip 即可
        
        解压 修改客户端配置文件 frpc.ini               \\ 放到此目录下即可 c:\frps_0.37
            [common]
            server_addr = 47.91.219.64
            server_port = 7000
            token = xxx

            [rdp]
            type = tcp
            local_ip = 127.0.0.1
            local_port = 3389
            remote_port = 3389
            custom_domains = 47.91.219.64


            在目录中打开 PowerShell       -->      ./frpc -c ./frpc.ini        \\ 临时测试 启动


        frpc.vbs                                        \\ 创建 开机启动文件
            Set ws = CreateObject("Wscript.Shell")
            ws.run "cmd /c c:\frps_0.37\frps.exe -c c:\frps_0.37\frps.ini",vbhide


        启动文件保存在此目录下即可 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp


        注:

            https://github.com/fatedier/frp/releases                        \\ 开源 git 地址
            https://github.com/fatedier/frp/blob/master/README_zh.md         \\ 官方文档
            https://gofrp.org/docs/                                           \\ 官方文档
            frp_0.37.0_linux_amd64.tar.gz           \\ linux 版本
            frp_0.37.0_windows_amd64.zip             \\ windows 版本



    wol 网卡唤醒工具 安装          \\ 未测试

        # wget http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/w/wol-0.7.1-23.el8.x86_64.rpm
        # rpm -ivh wol-0.7.1-23.el8.x86_64.rpm
        # wol -V

        rpm包下载地址 http://rpmfind.net/linux/rpm2html/search.php?query=wol(x86-64)


    windows 远程多开程序 RDPWrap-v1.6.2.zip       \\ 未测试




Coturn 穿透服务器搭建
 
    # yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel mysql-devel
    # wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
    # wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
    # tar -zxvf turnserver-4.5.0.8.tar.gz
    # cd turnserver-4.5.0.8/
    # ./configure
    # make && make install
    # openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
    # cd /usr/local/etc/
    # cp turnserver.conf.default turnserver.conf
    # vim turnserver.conf                          \\ 追加即可
        listening-device=eth0                       \\ 网卡名字
        listening-port=3478
        tls-listening-port=5349
        listening-ip=内网ip
        relay-ip=内网ip
        external-ip=公网ip
        min-port=49152
        max-port=65535
        lt-cred-mech
        realm=admin
        user=user:123456
        cert=/usr/local/etc/turn_server_cert.pem
        pkey=/usr/local/etc/turn_server_pkey.pem
        no-cli
    # turnserver -a -o -c /usr/local/etc/turnserver.conf      \\ 启动
    # ss -tnl                                                  \\ 3478 5349 被监听 防火墙放行tcp及udp 3478即可
 
    http://192.168.10.12:3478                          \\ 有如下页面 即启动成功
        TURN Server
        use https connection for the admin session
 
    https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/     \\ 检测网站
        STUN or TURN URI:  stun:103.113.61.109:3478
        TURN username:     user
        TURN password:     123456
        -->  Add Server  --> Gather candidates --> 有返回 本机ip即通过







Teo

You must be logged in to post a comment