文档目录

内网穿透

坦克AW支持内网穿透,可以快速让公网用户访问到局域网的网站。这个内网穿透功能公网端与局域网端通信是使用TCP链接的,通信数据使用密钥进行加密,安全性获得一定的增强。内网穿透的所有配置都在局域网端完成,配置好后,局域网端会把参数发送到公网端服务器进行注册,这样初始化就完成了。

局域网端

局域网端的配置如下内网穿透配置.tconf

,,=《{》}#“"”"


HTTPS证书模板一《
    # 支持自己签发HTTPS证书,这个证书的CA根证书也是软件自己签发,如果你的项目必须使用https访问,但是又没有https证书,可以使用自己签发的https证书作为临时解决方案。自己签发的https证书由于没有得到第三方认同,它是有局限性的,并不能满足所有功能,但其可以提高一定程度的安全性。如果需要使用这个功能,把下面这行文字的!号删除。自签证书保存在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》指定的目录。

    # 自己签发的证书,不受浏览器承认,浏览器会提示证书不信任。
    !自己签发证书

    # 注册邮箱用于接收 HTTPS证书 相关通知,比如:过期通知、更新通知等。
    !自动签发证书注册邮箱=xxx@xx.xxx

    # 自动签发证书使用 ACME 协议自动获取证书,获取证书的方式有:
    # 1. DNS 认证方式
    #       1.1 DNS供应商 AWS Route53 
    !自动签发证书《
        区域="xxx"
        访问ID="xxx"
        访问密钥="xxx"
    》

    # 证书目录默认等于《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》。如果需要自己设置,可以删除前面的!号,然后配置自己HTTPS证书路径。注意:如果你使用自签功能,则自签证书保存在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》指定的目录。
    # 如果你使用第三方CA机构的https证书,一种推荐的做法是把自签功能关闭,先在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》里面创建一个与域名一样的文件夹,然后把你的https证书复制到域名文件夹里面。然后在下面配置。

    !证书=虚拟机/HTTPS证书/你的证书目录/你的证书
    !私钥=虚拟机/HTTPS证书/你的证书目录/你的证书key
》

公网端一《
    # 加密密码,用于内网穿透数据传输的对称加密算法,公网端和本地端端口都一样。
    传输加密密码=ganyaotong

    # 公网端和本地端端口都一样。
    内网穿透端口=4488

    # 公网端和本地端不同,如果是公网端,这个值必须是 0.0.0.0 ;如果是本地端,这里就要配置成你公网端的 IP 地址。
    内网穿透远程地址=47.65.3.xx
》

# 数据传输速率限制 限制服务器每秒可以传输多少兆数据,如果遇到DDOS攻击,会大量消耗服务器带宽,通过调整数据传输速率限制对象,可以有效保护服务器带宽。如果不需要这个功能 可以添加 ! 注释它。
数据传输速率限制《
    # 数据传输缓存大小(单位是MB) 表示 最大数据传输缓存大小。比如,假设 网络下载速度是 10Mb每秒,如果数据传输缓存大小设置 100 ,那么下载一个 10 MB 的文件,一秒内就可以把这个文件下载完成。如果下载一个 200MB 的文件,那么每秒会下载 10 MB, 当下载超过 100 的时候,下载就会变慢。直到新的填充到来。后面的传输速率受到填充控制。
    数据传输缓存大小 = 4

    # 数据传输量填充频率 (MB/每秒)。每秒会恢复一定的传输量到 传输缓存,比如:如果是 1,当 100MB 的文件把传输缓存用完的时候,下载就会便慢,等待 1 秒钟,会恢复 1MB 传输量到传输缓存。此时下载就会保持在 1MB 每秒的下载速度。如果接下来 100 秒没有传输,传输缓存 就会恢复 100 * 1 传输量到传输缓存。如果达到传输缓存的大小,将会停止恢复。
    数据传输量填充频率 = 3
》

# 这里设置的监视器,专门统计经过内网穿透的流量。
监视器《
    # 监视数据保存根目录下还分别有不同的子目录,子目录就是监视组名。这个根目录的值应该与生产环境监视器配置的值保持一致。
    监视数据保存根目录 = ./监视数据/

    # 监视组名可以理解为监视根目录下的子目录,与其它组区分。
    监视组名 = 内网穿透总统计
》

# 内网穿透涉及三个概念,一个是协议体系、一个是公网端、一个本地端,协议体系是他支持的协议,比如:HTTP协议、WS协议,公网端放在公网给用户访问的,本地端安装在局域网内的服务器。用户访问公网端的时候就像访问你的局域网一样。如果你需要开启内网穿透,可以把下面这行的 ! 号删除。内网穿透公网端和本地端的全局配置都一样。有一点区别,需要往下看注释。
内网穿透《
    # 当把本服务运行在公网端的时候,如果开启内网穿透公网端,可以把 ! 号删除。当它成为公网端,下面的 穿透服务配置 就不会生效。
    !监听端口=4488

    # 加密密码,用于内网穿透数据传输的对称加密算法,公网端和本地端端口都一样。
    传输加密密码=ganyaotong

    # 请把后端对象里配置的域名解析到内网穿透服务器的IP地址
    # 把受访域名解析到你内网穿透公网端的 IP 地址上,本地服务地址是你本地服务进程的地址。
    # 只有本地端才需要配置这个。
    穿透服务配置《
        《
            !暂停
            !启用传输加密
            公网端=公网端一
            !HTTPS证书=HTTPS证书模板一
            受访协议体系=http
            受访域名=ip.demo.v1.www.tankprint.online:8080
            受访路径=/
            本地协议体系=http
            本地服务地址=127.0.0.1:9051
            本地路径=/
        》
        《
            !暂停
            !启用传输加密
            公网端=公网端一
            HTTPS证书=HTTPS证书模板一
            受访协议体系=http
            受访域名=ip.demo.v1.www.tankprint.online
            受访路径=/
            本地协议体系=http
            本地服务地址=127.0.0.1:9051
            本地路径=/
        》
        《 
            !暂停
            !启用传输加密
            公网端=公网端一
            HTTPS证书=HTTPS证书模板一
            受访协议体系=http
            受访域名=ip.demo.v2.www.tankprint.online                       
            受访路径=/
            本地协议体系=http
            本地服务地址=127.0.0.1:9052              
            本地路径=/
        》
    》
》

参数解释

HTTPS证书模板一,证书模板是内网穿透网站的HTTPS证书配置的部件(部件可以重复使用),虚拟机HTTPS证书的解释也适用与内网穿透网站。可以参考虚拟机的解释ACME证书签发。这个部件在内网穿透服务里面填充。证书模板名称可以随便命名,坦克AW不会依靠名称识别证书模板,而是根据内部特征识别证书模板。


公网端一,公网端就是公网服务器,如果有多个公网服务器,可以在这里配置多个公网端部件。局域网端通过拨号公网端完成信道部署。公网端部件名称可以随便,坦克AW不会依赖名称识别公网端,而是根据内部特征识别公网端。传输加密密码是公网端与局域网端双方加密通信的加密密码内网穿透远程地址内网穿透端口是连接公网端的参数。


数据传输速率限制,这属于公网端的解释,下面会讲到。


监视器,是统计访问数据的部分,分为局域网监视统计和公网端解释统计。其中监视组名这个配置参数可能会在坦克AW最新版本里面弃用。


内网穿透 这部分是局域网端和公网端同时需要配置的部分。


1.监听端口,如果是公网端,监听端口需要打开,并且监听端口与局域网端的公网端部件保持一致才可以通信。

2.传输加密密码,如果是公网端,需要配置加密密码,因为加密后的数据需要使用相同的密码解密才可以,所以应该与局域网端的公网端部件保持一致才可以通信。

3.穿透服务配置,所有后端服务都包含在这里。每个后端服务是一个无名对象(Tconf格式的概念)。

参数 举例 描述
暂停 !暂停 表示启动与暂停这个后端。(前面加叹号表示逻辑非
启用传输加密 启用传输加密 是否使用加密通信(公网端与局域网端的通信),加密通信可以保证安全,比如用户提交的表单。
公网端 公网端=公网端一 套用上面配置的公网端部件。表示使用套用的公网端对外提供网站服务。
HTTPS证书 HTTPS证书=HTTPS证书模板一 套用HTTPS证书模板,这样就可以在用户浏览器与公网端之间建立安全链接,而上面提到的启用传输加密参数是公网端与局域网端的安全通信的。两个同时打开可以提升整个方案的安全性。
受访协议体系 受访协议体系=http 固定http。
受访域名 受访域名=www.tankprint.online 网站公网访问域名,并保证域名解析到公网端的IP上。
受访路径 受访路径=/ 固定根路径(/)。
本地协议体系 本地协议体系=http 固定http。
本地服务地址 本地服务地址=127.0.0.1:9051 网站的内网地址(局域网地址)。
本地路径 本地路径=/ 固定根路径(/)。





公网端

公网端与局域网端的配置文件两个使用相同的。

公网端的配置如下内网穿透配置.tconf

,,=《{》}#“"”"

# 数据传输速率限制 限制服务器每秒可以传输多少兆数据,如果遇到DDOS攻击,会大量消耗服务器带宽,通过调整数据传输速率限制对象,可以有效保护服务器带宽。如果不需要这个功能 可以添加 ! 注释它。
数据传输速率限制《
    # 数据传输缓存大小(单位是MB) 表示 最大数据传输缓存大小。比如,假设 网络下载速度是 10Mb每秒,如果数据传输缓存大小设置 100 ,那么下载一个 10 MB 的文件,一秒内就可以把这个文件下载完成。如果下载一个 200MB 的文件,那么每秒会下载 10 MB, 当下载超过 100 的时候,下载就会变慢。直到新的填充到来。后面的传输速率受到填充控制。
    数据传输缓存大小 = 4

    # 数据传输量填充频率 (MB/每秒)。每秒会恢复一定的传输量到 传输缓存,比如:如果是 1,当 100MB 的文件把传输缓存用完的时候,下载就会便慢,等待 1 秒钟,会恢复 1MB 传输量到传输缓存。此时下载就会保持在 1MB 每秒的下载速度。如果接下来 100 秒没有传输,传输缓存 就会恢复 100 * 1 传输量到传输缓存。如果达到传输缓存的大小,将会停止恢复。
    数据传输量填充频率 = 3
》

# 这里设置的监视器,专门统计经过内网穿透的流量。
监视器《
    # 监视数据保存根目录下还分别有不同的子目录,子目录就是监视组名。这个根目录的值应该与生产环境监视器配置的值保持一致。
    监视数据保存根目录 = ./监视数据/

    # 监视组名可以理解为监视根目录下的子目录,与其它组区分。
    监视组名 = 内网穿透总统计
》

# 内网穿透涉及三个概念,一个是协议体系、一个是公网端、一个本地端,协议体系是他支持的协议,比如:HTTP协议、WS协议,公网端放在公网给用户访问的,本地端安装在局域网内的服务器。用户访问公网端的时候就像访问你的局域网一样。如果你需要开启内网穿透,可以把下面这行的 ! 号删除。内网穿透公网端和本地端的全局配置都一样。有一点区别,需要往下看注释。
内网穿透《
    # 当把本服务运行在公网端的时候,如果开启内网穿透公网端,可以把 ! 号删除。当它成为公网端,下面的 穿透服务配置 就不会生效。
    监听端口=4488

    # 加密密码,用于内网穿透数据传输的对称加密算法,公网端和本地端端口都一样。
    传输加密密码=ganyaotong

    # 请把后端对象里配置的域名解析到内网穿透服务器的IP地址
    # 把受访域名解析到你内网穿透公网端的 IP 地址上,本地服务地址是你本地服务进程的地址。
    # 只有本地端才需要配置这个。
    穿透服务配置《
    》
》

参数解释

公网端的关键参数少于局域网端,因为公网端不用配置后端服务,因为局域网端配置后端服务后会把参数上传到公网端,坦克AW自动处理,这个过程是透明的(就像你理解的一样)。


数据传输速率限制,这个是为了防止DDOS攻击而设计的工具,主要在用户浏览器到公网端这个过程进行保护,一个常见的情况是,假设用户从你公网端下载文件的速度是 10Mb/s,通过设置这个参数,你可以控制在 1Mb/s,(这里说假设是因为我不知道你公网端的带宽与用户网线的带宽)。

数据传输缓存大小,如果这里设置4(单位:MB),用户下载一个4Mb的文件,那么在 1 秒内就可以下载完成,如果是12Mb的文件,那么能在多少秒下载完成就需要看数据传输量填充频率这个参数。

数据传输量填充频率,这个如果设置1(单位:MB),那么,上面12MB的文件,在第 1 秒下载了 4MB ,在第 2 秒就下载 1MB,下载整个文件用8(1MB/s * 8) + 1(4MB) = 9 秒 (这里假用户和你公网带宽无限大的情况下的理想情况,如果用户或者公网服务器本身带宽就 3Mb ,那么下载速度就已经受到物理带宽的限制了)。这里设置 1,表示坦克AW每秒给 1MB 的内存你缓存数据,下载 1MB 后,又用完了,需要等到下 1 秒坦克AW给予内存。

恢复,用户下载完成后,会每秒给予 1MB 的内存,直到到达数据传输缓存大小设定的值(即 4MB),填满停止。


监视器,局域网端的监视器解释也适用于公网端。

内网穿透,这里公网端的内网穿透无需配置后端(因为所有后端由局域网端上传过来,就像你想象的一样)。

监听端口,公网服务器进程监听这个端口,等待局域网端拨号这个端口,大部分云服务供应商会设计安全策略保护端口,并不会开放你设置的端口,所以你设置好端口后,需要到云服务供应商设置安全组开放对应的端口,这样局域网端才可以连接上这个端口。

传输加密密码,加密与解密局域网端的通信数据,这样可以提升方案的安全性。同时打开HTTPS,更可以提高用户浏览器到公网服务器的安全性,这是常见做法。

坦克PWA3集成提示

坦克PWA3是坦克网络提供的一个基础网络架构,集成了 坦克AW,并提供 Web GUI 管理。可以使用 坦克PWA3 更多功能。