又一款帶Web管理界面的內網穿透工具

一個免費的內網穿透工具Holer,它可以將局域網服務器代理到公網的內網穿透工具,支持轉發基於TCP等協議的報文,作者現在服務端代碼已經開源了,而且帶Web管理面板,這裡就大概說下,我們就可以拿來自建一個內網穿透服務器,使用效果還不錯。

截圖

又一款帶Web管理界面的內網穿透工具

又一款帶Web管理界面的內網穿透工具

又一款帶Web管理界面的內網穿透工具

安裝服務端

Github地址:https://github.com/Wisdom-Projects/holer

支持系統:Windows、Linux系統,這裡只說Linux搭建,建議直接Debain。

說明:由於該面板使用的JAVA,所以還是比較消耗內存的,如果內存太小,建議先加一點虛擬內存,可以使用Swap一鍵腳本→傳送門。

1、安裝JAVA

#CentOS系統
yum install java-1.8.0-openjdk -y
#Debian/Ubuntu系統
apt update
apt install default-jdk -y

2、安裝Mysql

#CentOS 6系統
rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum install mysql-community-server -y
service mysqld start
chkconfig mysqld on
#CentOS 7系統
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server -y
systemctl start mysqld
systemctl enable mysqld
#Debian/Ubuntu系統
apt install mysql-server -y

如果Debian或Ubuntu在安裝期間有彈出窗口要你輸入密碼就設置一個,沒有的話密碼就是空格。

修改數據庫密碼:

#CentOS系統,第一行登錄數據庫的時候直接Enter跳過,第二行moerats為要修改的密碼,自行修改
mysql -u root -p
mysql> set password=password("moerats");
mysql> exit;
#Debian、Ubuntu系統,第一行登錄數據庫的時候直接Enter跳過,第二行moerats為要修改的密碼,自行修改

mysql -u root -p
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('moerats'), PLUGIN='mysql_native_password' WHERE USER='root';
mysql> exit;

最後修改過密碼的還需要重啟數據庫:

#CentOS系統
service mysqld restart
#Debian和Ubuntu系統
systemctl restart mysql

此時Mysql算是安裝完成了。

3、安裝源碼

安裝unzip:

#CentOS系統
yum install unzip -y
#Debian和Ubuntu系統
apt install unzip -y

下載源碼:

wget https://github.com/wisdom-projects/holer/releases/download/v1.1/holer-server-1.1.zip
unzip holer-server-1.1.zip && rm -rf holer-server-1.1.zip
#移動到opt目錄,然後進入到源碼文件夾
mv holer-server /opt/holer && cd $_
#修改配置文件
nano resources/application.yaml

關鍵配置如下:

#運行端口
server:
port: 600

#Mysql數據庫用戶名和密碼
spring:
datasource:
username: root
password: moerats
#域名和nginx目錄,可以直接全部刪掉,用ip不需要,域名的話,有點不好用
holer
domain:
name: your-domain.com
nginx:
#home: /usr/local/nginx
home: C:/nginx-1.14.2

修改後使用Ctrl+x、y保存退出,或者可以直接使用FTP等工具直接編輯。

再修改管理員用戶名和密碼,使用命令:

nano resources/conf/holer-data.sql

admin和admin123為管理員用戶名和密碼,自行修改,修改完成後同樣的使用Ctrl+x、y保存退出。

最後啟動:

chmod +x holer
./holer start

如果想開機自啟的話,這裡可以建一個簡單的systemd配置文件,且不適用CentOS 6,使用命令:

#將以下代碼一起復制到SSH運行
cat > /etc/systemd/system/holer.service <[Unit]

Description=holer
After=network.target
[Service]
Type=simple
ExecStart=$(command -v java) -server -Xms256m -Xmx512m -jar holer-server-1.1.jar
WorkingDirectory=/opt/holer
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

然後啟動並設置開機自啟:

systemctl start holer
systemctl enable holer

然後就可以使用ip:600訪問管理界面了,具體端口以你修改的為準。

然後CentOS系統建議關閉防火牆使用,或者打開部分端口也行,關閉命令:

#CentOS 6系統
service iptables stop
chkconfig iptables off
#CentOS 7系統
systemctl stop firewalld
systemctl disable firewalld

像阿里雲等服務器,還需要去安全組那裡開放下端口。

客戶端使用

首先我們需要去用戶列表新建一個用戶,然後再去端口映射選擇該用戶,新建一個穿透規則,這裡根據需求自行選擇,然後設置好時長。

然後就可以直接在客戶端使用了,一般客戶端有JAVA和GO版,使用JAVA的話,需要先安裝JAVA環境,所以這裡直接選擇GO版本,簡單粗暴。

首先根據直接的系統和架構下載指定的GO版客戶端,每個壓縮包裡都包含32位和64位,下載地址→傳送門。

這裡拿我們常見的Linux服務器架構來說,直接使用命令:

#下載並解壓
wget https://github.com/wisdom-projects/holer/raw/master/Binary/Go/holer-linux-x86.tar.gz
tar -zxvf holer-linux-x86.tar.gz
#32位啟動,分別為訪問秘鑰和服務端ip地址
nohup ./holer-linux-386 -k 7aa8d973bc8e40 -s ip地址 &
#64位啟動
nohup ./holer-linux-amd64 -k 7aa8d973bc8e40 -s ip地址 &

如果是Windows系統,先把壓縮包下載並解壓到D盤根目錄,然後按住Win+R,輸入cmd進入命令窗口,使用命令:

#進入到D盤根目錄
cd D:\\
#32位啟動,分別為訪問秘鑰和服務端ip地址
.\\holer-windows-386.exe -k 7aa8d973bc8e40 -s ip地址
#64位啟動
.\\holer-windows-amd64.exe -k 7aa8d973bc8e40 -s ip地址

到這裡基本上就運行成功了。

域名反代

如果你想使用域名來配置服務器面板的話,就需要安裝Web服務器了,這裡就直接使用Nginx。

1、安裝Nginx

#CentOS 6系統
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx -y
service nginx start
chkconfig nginx on
#CentOS 7系統
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx -y
systemctl start nginx
systemctl enable nginx
#Debian/Ubuntu系統
apt install nginx -y

2、申請SSL證書

這裡就使用簡單粗暴的webroot方式簽發Let's Encrypt證書,首先解析好域名並生效。

安裝letsencrypt:

#CentOS系統
yum install letsencrypt -y
#Debian/Ubuntu系統
apt install letsencrypt -y

申請SSL證書:

#CentOS系統
letsencrypt certonly --webroot -w /usr/share/nginx/html --domain www.moerats.com
#Debian/Ubuntu系統
letsencrypt certonly --webroot -w /var/www/html --domain www.moerats.com

請替換成自己域名後運行,期間會要你輸入郵箱和A選項啥的,申請後證書文件在/etc/letsencrypt/live。

3、新建conf文件

#將下面域名修改成自己的,然後證書路徑也修改下,再一起復制進SSH客戶端運行
cat > /etc/nginx/conf.d/holer.conf << 'EOF'
server {
listen 443;
server_name www.moerats.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.moerats.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.moerats.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_pass http://127.0.0.1:600/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {

root html;
}
}
server
{
listen 80;
server_name www.moerats.com;
rewrite ^(.*) https://www.moerats.com$1 permanent;
}
EOF

重啟Nginx生效:

systemctl restart nginx

最後連接的時候,就可以填域名了。

最後要是覺得搭建服務器麻煩,或者不想搭建的,可以使用作者提供的免費服務,更多使用方法移至→傳送門。


分享到:


相關文章: