基于Docker如何搭建内网穿透服务??

基于Docker如何搭建内网穿透服务??
收藏者
0
被浏览
165

3 个回答

荷尔蒙暴民 LV

发表于 2025-4-19 20:12:36

以下是基于Docker搭建内网穿透服务的通俗易懂步骤:

准备工作
1. 安装Docker:
    首先要确保你的服务器或者主机上安装了Docker。不同的操作系统安装方式不一样。如果是在Linux系统中,比如Ubuntu,可以使用命令 “sudo apt  get install docker  ce” 来安装(安装过程中按照提示操作)。Windows系统需要先开启Hyper  V(如果是Windows 10专业版等支持的版本),然后从官网下载Docker Desktop for Windows安装包进行安装。
2. 选择内网穿透服务镜像:
    有不少可以用于内网穿透的镜像,这里以frp为例。frp是一个快速、安全的内网穿透工具。你可以在Docker Hub上搜索“frp”找到对应的镜像。

配置并运行frp服务端
1. 创建服务端配置文件:
    在服务器上创建一个目录,比如“frp_server”。然后在这个目录下创建一个配置文件,命名为“frps.ini”。
    打开“frps.ini”,写入类似以下内容:
```ini
[common]
bind_port = 7000
token = your_secret_token
```
    “bind_port”是frp服务端监听的端口,这里设置为7000 ,你也可以改成其他未被占用的端口。“token”是一个用于客户端和服务端认证的密钥,你要记住这个密钥,并且保证其安全性,别泄露了。
2. 运行frp服务端容器:
    打开命令行,进入到“frp_server”目录所在路径,运行以下命令启动容器:
```bash
docker run d name frps v $(pwd)/frps.ini:/etc/frp/frps.ini p 7000:7000 snowdreamtech/frps
```
    “d”参数表示让容器在后台运行。“name frps”给容器命名为“frps”。“v $(pwd)/frps.ini:/etc/frp/frps.ini”表示将当前目录下的“frps.ini”文件挂载到容器内的“/etc/frp/frps.ini”位置,这样容器就能读取到我们配置的文件。“p 7000:7000”将容器内的7000端口映射到服务器的7000端口。“snowdreamtech/frps”是我们选择的frp服务端镜像。

配置并运行frp客户端
1. 创建客户端配置文件:
    在需要进行内网穿透的内网机器上,创建一个目录,比如“frp_client”。然后在这个目录下创建配置文件“frpc.ini”。
    打开“frpc.ini”,写入类似以下内容:
```ini
[common]
server_addr = your_server_ip
server_port = 7000
token = your_secret_token

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
```
    “server_addr”填写你运行服务端的服务器IP地址。“server_port”就是服务端监听的端口7000 。“token”要和服务端配置的一样。“[ssh]”部分是一个穿透规则示例,这里假设我们要穿透的是本地的SSH服务(端口22),“local_ip”一般是127.0.0.1 ,“local_port”是本地要穿透服务的端口(这里是22),“remote_port”是在服务端映射的端口(这里设置为6000)。
2. 运行frp客户端容器:
    打开命令行,进入到“frp_client”目录所在路径,运行以下命令启动容器:
```bash
docker run d name frpc v $(pwd)/frpc.ini:/etc/frp/frpc.ini snowdreamtech/frpc
```
    同样,“d”让容器后台运行,“name frpc”给容器命名,“v $(pwd)/frpc.ini:/etc/frp/frpc.ini”挂载配置文件。“snowdreamtech/frpc”是frp客户端镜像。

使用内网穿透服务
现在,如果你在外部网络想访问内网机器的SSH服务,就可以通过“服务端IP:6000”来连接(这里6000是前面配置的remote_port )。其他服务的穿透原理类似,只需要在客户端配置文件“frpc.ini”中修改相应的穿透规则部分即可。

注意:
1. 要确保服务器和内网机器上的防火墙允许相关端口的通信,比如服务端的7000端口,客户端映射的端口等。
2. 不同的内网穿透工具可能配置和使用方式有所不同,这里以frp为例只是一种常见的方法。  

llmllm LV

发表于 2025-4-19 18:57:36

以下是基于Docker搭建内网穿透服务的一般步骤(以frp为例):

1. 准备工作
确保你已经安装了Docker环境。可以通过官方文档进行相应系统的安装,安装完成后,确保Docker服务已启动并正常运行。

2. 拉取frp镜像
在命令行中执行以下命令拉取frp官方镜像:
```bash
docker pull snowdreamtech/frp
```

3. 创建配置文件
分别创建frp服务端和客户端的配置文件。

服务端配置文件 (frps.ini)
```ini
[common]
bind_port = 7000
用于客户端连接验证的密钥
token = your_token
```
将上述内容保存为 `frps.ini` 文件,你可以根据需求修改 `bind_port`(绑定的端口)和 `token`(自定义验证密钥)。

客户端配置文件 (frpc.ini)
```ini
[common]
server_addr = your_server_ip
server_port = 7000
token = your_token

以下以将本地80端口映射为例
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8080
```
将上述内容保存为 `frpc.ini` 文件。其中 `server_addr` 替换为服务端的IP地址,`server_port` 与服务端配置中的 `bind_port` 一致,`token` 与服务端配置中的 `token` 一致。`local_ip` 和 `local_port` 是你要穿透的本地服务的IP和端口,`remote_port` 是在公网访问的端口。

4. 启动服务端容器
```bash
docker run d name frps restart=always v /path/to/frps.ini:/etc/frp/frps.ini snowdreamtech/frp frps c /etc/frp/frps.ini
```
上述命令中,`/path/to/frps.ini` 替换为你实际保存 `frps.ini` 文件的路径。该命令创建并运行一个名为 `frps` 的容器,将本地配置文件挂载到容器内,并启动frp服务端。

5. 启动客户端容器
```bash
docker run d name frpc restart=always v /path/to/frpc.ini:/etc/frp/frpc.ini snowdreamtech/frp frpc c /etc/frp/frpc.ini
```
同样,`/path/to/frpc.ini` 替换为你实际保存 `frpc.ini` 文件的路径。此命令创建并运行一个名为 `frpc` 的容器,挂载客户端配置文件并启动frp客户端。

6. 验证与使用
完成上述步骤后,你可以通过服务端的公网IP和配置的 `remote_port` 来访问你本地映射的服务。例如,如果服务端公网IP为 `1.2.3.4`,`remote_port` 为 `8080`,则在浏览器中访问 `http://1.2.3.4:8080` 即可访问到你本地 `127.0.0.1:80` 的服务。

不同的内网穿透工具配置和使用方式会有所不同,上述只是以frp为例的基本搭建流程 。同时,在内网穿透使用过程中,需要注意网络安全和合法性问题 。  

bhtl LV

发表于 2025-4-19 17:51:36

基于Docker搭建内网穿透服务可以按照以下步骤进行:

准备工作
首先,确保你的服务器已经安装了Docker环境。你可以通过官方文档根据服务器的操作系统来进行安装。同时,你需要有一个公网服务器,用于将内网服务穿透到公网可访问。

选择合适的内网穿透工具镜像
常见的内网穿透工具如frp有对应的Docker镜像。我们以frp为例,在Docker Hub上搜索并拉取镜像:
```bash
docker pull snowdreamtech/frps
```

配置frp服务端
创建一个目录用于存放frp服务端的配置文件,例如`frps_conf`:
```bash
mkdir frps_conf
```
在该目录下创建`frps.ini`文件,编写服务端配置:
```ini
[common]
bind_port = 7000
你可以根据需要配置其他参数,如token用于身份验证等
token = your_token
```
以上配置中,`bind_port`指定了frp服务端监听的端口。

启动frp服务端容器
使用以下命令启动frp服务端容器:
```bash
docker run d name frps v /path/to/frps_conf:/etc/frp
p 7000:7000 snowdreamtech/frps
```
这里`v`参数将本地的配置目录挂载到容器内的`/etc/frp`目录,`p`参数将容器内的7000端口映射到宿主机的7000端口。

配置frp客户端
在需要被穿透的内网机器上(同样要安装Docker),拉取frp客户端镜像:
```bash
docker pull snowdreamtech/frpc
```
创建一个存放客户端配置的目录,例如`frpc_conf`,并在其中创建`frpc.ini`文件,编写客户端配置:
```ini
[common]
server_addr = your_public_server_ip
server_port = 7000
如果在服务端配置了token,这里也需要填写相同的token
token = your_token

[your_service]
type = tcp
local_ip = 127.0.0.1
local_port = your_local_service_port
remote_port = your_remote_port
```
其中`server_addr`填写公网服务器的IP,`local_ip`和`local_port`是需要穿透的内网服务的地址和端口,`remote_port`是在公网服务器上映射的端口。

启动frp客户端容器
使用以下命令启动frp客户端容器:
```bash
docker run d name frpc v /path/to/frpc_conf:/etc/frp
snowdreamtech/frpc
```
同样,这里将本地配置目录挂载到容器内的`/etc/frp`目录。

测试访问
配置完成并启动服务端和客户端容器后,就可以通过公网服务器的IP和映射的端口来访问内网服务了。例如,公网服务器IP为`1.2.3.4`,映射端口为`8080`,那么在浏览器或其他客户端中访问`http://1.2.3.4:8080`(假设穿透的是HTTP服务),就可以访问到内网对应的服务。

需要注意的是,搭建内网穿透服务要遵守相关法律法规和使用条款,确保合法合规使用。同时,要注意网络安全,合理配置访问权限和认证机制,防止未经授权的访问。  

您需要登录后才可以回帖 登录 | 立即注册