内网穿透:内网防火墙只开放443和80端口内网穿透方法
有些地方的内部网络,局域网内的防火墙只开放了80和443,导致局域网访问只能访问网页,凡是涉及到其他的端口的应用就没有办法使用,这个方法就是通过80或443来转发其他端口,让非80或443端口的应用恢复正常
涉及到的应用
内网穿透应用:n2n
GitHub - ntop/n2n: Peer-to-peer VPN
端口转发应用:chisel
GitHub - jpillora/chisel: A fast TCP/UDP tunnel over HTTP
大致步骤:
- 先搭建好n2n服务端,方法比较简单,请百度
- 搭建chisel服务端,再通过chisel服务端走443或80端口转发n2n服务端端口
- 客户端先用chisel客户端连接chisel服务端建立通信,并映射本地端口转发n2n服务端端口
- 客户端n2n使用chisel客户端的本地端口,连接到远程的n2n服务端实现内网穿透
一、搭建n2n服务端,方法请百度
二、搭建chisel服务端,服务端配置
wget https://github.com/jpillora/chisel/releases/download/v1.9.1/chisel_1.9.1_linux_amd64.gz
gzip chisel_1.9.1_linux_amd64.gz
mv chisel /usr/sbin
chmod +x /usr/sbin/chisel
创建systemd启动配置
Chisel.service
[Unit]
Description=Chisel
[Service]
ExecStart=/usr/sbin/chisel server –auth “user:password” –port 5080
restart=on-failure
[Install]
WantedBy=default.target
再使用nginx来转发chisel服务端的请求,nginx配置文件
map $http_upgrade $connection_upgrade {
default upgrade;
‘’ close;
}
server {
listen 80;
listen 443 ssl;
server_name chisel.domain.com;
root /home/chisel;
index index.html index.htm;
access_log /var/log/nginx/host_chisel.access.log main;
ssl_certificate /etc/fullchain.pem;
ssl_certificate_key /etc/privkey.pem;
location /{
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:5080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 3600s;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}
三、客户端chisel配置方法
先将chisel下载到本地,并移动到/usr/sbin,并赋予执行权限,chisel systemd配置文件如下,1001为本地n2n连接服务端口,1002为远程n2n服务端口
[Unit]
Description=chisel
[Service]
ExecStart=/usr/sbin/chisel client –auth “user:password” https://chisel.domain.com 1001:127.0.0.1:1002/tcp 1001:127.0.0.1:1002/udp
Restart=on-abort
[Install]
WantedBy=default.target
如果出现下面的报错,可能原因 1.执行命令文件没有权限 2.selinux已开启,没有设置对应权限
service: Failed to execute command: Permission denied
service: Failed at step EXEC spawning Permission denied
四、n2n客户端配置
将n2n服务端端口指上面chisel本地映射端口1001,就可以连接到n2n服务端,连接完后,整个过程就算完成