使用NATAPP内网穿透

1.问题:需要远程调试接口

开发环境: vue.js

2.解决:使用natApp进行内网穿透,以前用过花生壳,现在感觉没有以前好用了,故而使用natapp来进行穿透

以下是官网地址,很详细,自用

NATAPP1分钟快速新手图文教程

3.遇到的问题

当我把natapp的环境弄好了,在使用到我的vue.js中的时候提示跨域问题。
changeOrigin: true, 设置为true即可
解决代码如下:

devServer: {
		proxy: {
			"/api": {
				target: "http://5qjb9b.natappfree.cc",
				changeOrigin: true,
				pathRewrite: { "^/api": "" },
			},
		},
	},
### 不同本地端口在 Natapp 内网穿透中的区别 Natapp 是一款用于内网穿透的工具,其主要功能是将内网服务暴露到公网中。当使用不同的本地端口(如 80、8000 和 8080)时,这些端口的选择会对服务的功能性和兼容性产生一定影响。 #### 1. **端口选择的影响** - **端口 80**: 这是一个标准 HTTP 协议使用的默认端口。如果用户未指定端口号,则浏览器通常会尝试连接到此端口。因此,在配置 natapp 使用端口 80 的情况下,外部访问者无需显式输入端口号即可直接访问服务[^3]。 - **端口 8000 和 8080**: 这两个是非标准的 HTTP 端口,常用于开发环境下的测试服务器或其他自定义应用。由于它们不是默认端口,外部访问者需要手动附加端口号来访问服务。例如,`http://example.com:8000` 或 `http://example.com:8080`[^4]。 #### 2. **性能与安全性差异** - 在安全方面,非标准端口(如 8000 和 8080)可能会减少一些自动化扫描器的关注度,从而降低潜在的安全风险。然而,这并不意味着它们更安全;真正的安全性取决于应用程序本身的防护措施。 - 对于性能而言,不同端口之间并无显著差别,除非操作系统或防火墙对某些端口施加了额外限制[^1]。 #### 3. **关系分析** 问题是指因浏览器同源策略 (Same-Origin Policy) 导致的不同源之间的资源请求受到限制的情况。即使通过 natapp 实现了内网穿透并公开了一个服务,但如果前端页面和服务端 API 来源于不同的名或端口组合,仍然会发生问题。 以下是具体场景说明: - 如果前端运行在一个带有特定端口的服务上(比如 http://localhost:3000),而后端则位于另一个端口(例如 http://localhost:8080),此时即便两者都经过 natapp 映射到了同一个公共 URL 下,仍需解决问题,因为客户端视角下它们属于不同源[^2]。 - 解决方案之一是在后端设置 CORS 头部允许来自指定前端地址的请求。另一种方法则是借助反向代理机制统一入口路径,使得前后端看起来像是同一来源。 ```javascript // 设置CORS头的一个例子 const express = require('express'); const app = express(); app.use((req, res, next) => { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); app.listen(8080); ``` ### 结论 综上所述,虽然 natapp 提供了一种便捷的方式让内网服务能够被外网访问,但在实际操作过程中还需要考虑诸如端口选择带来的用户体验变化以及可能出现的挑战等问题。合理规划端口分配,并采取适当的技术手段应对难题是非常重要的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值