如何在无公网ip的情况下,配置内网穿透,访问内网主机

前提条件

  1. 有个域名(内网穿透功能非必须,若将来申请证书,则必须)
  2. 有个服务器,该服务器有公网ip (必须,通过该服务器中转)

教程开始

  1. 首先到cloudflare,将域名解析至远端服务器(有公网ip的服务器)
  2. 清除默认iptables规则
sudo -i
iptables -vnL
iptables -F
iptables-save > /etc/iptables/rules.v4 
  1. 安装firewalld
sudo apt update
sudo apt install -y firewalld
sudo  firewall-cmd --add-port=22/tcp --add-port=8080/tcp --add-port=8024/tcp --add-port=9001/tcp --add-port=443/tcp --permanent
sudo firewall-cmd --reload
  1. 下载conf,传到服务器

https://github.com/ehang-io/nps/archive/refs/tags/v0.26.10.zip

  1. 安装docker环境(看上期视频/日志)
  2. 运行服务端nps容器,(注意conf路径):
docker run -d --name nps --net=host --restart=always -v /home/ubuntu/nps/conf:/conf ffdfgdfg/nps
  1. 运行客户端npc容器:
docker run -d --name npc --net=host --restart=always ffdfgdfg/npc -server=nps.mjvlog.top:8024 -vkey=g4x0yw778uomt6n8

  1. 使用电脑,链接手机热点登录
  2. 使用手机流量登录

补充说明

  1. 可以看到浏览器上写的不安全,说明我们现在使用的是http方式,密码会暴露在公网,确实不够安全,下一期视频教大家如何通过反向代理和申请ssl证书,解决浏览器提示“不安全”的问题
  2. 公网服务器的选择,国内还是国外?

国内:穿透速度快, 缺点:使用域名 80,443端口,需要备案

国外:穿透速度比国内慢,速度取决于服务商,无需备案,并且还能搭建其他更好用的应用

如何安装docker、docker compose环境

视频教程:

官网:

Ubuntu:

https://docs.docker.com/engine/install/ubuntu

Centos:

https://docs.docker.com/engine/install/centos

以及其他系统:

以Ubuntu系统为例:

1.卸载旧版、可能冲突的、非官方软件包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

2.清除默认iptables规则

sudo -i
iptables -vnL
iptables -F
iptables-save > /etc/iptables/rules.v4 

3.安装firewalld

sudo apt update
sudo apt install -y firewalld
sudo  firewall-cmd --add-port=22/tcp --add-port=443/tcp --add-port=62345/tcp --add-port=62345/udp  --permanent
sudo firewall-cmd --reload

2.设置apt仓库

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

3.安装最新版本docker/docker compose

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.验证安装成功

sudo docker run hello-world

5. 设置免sudo使用docker命令

sudo groupadd docker          #添加docker用户组
sudo gpasswd -a $USER docker  #将当前用户添加至docker用户组
sudo newgrp docker            #更新docker用户组