中微子代理(neutrino-proxy)是一个基于netty的、开源的java内网穿透项目。
开源地址:https://gitee.com/dromara/neutrino-proxy
服务端部署
本文演示为原生部署方式
1、安装包下载
- 打开发行版页面 (opens new window),下载所需的最新的release包:
- 比如服务器为linux则可下载
neutrino-proxy-server-linux-2.0.1-native.zip
文件,客户端为windows则可下载neutrino-proxy-client-windows-2.0.1-native.zip
2、部署服务端
- 将服务端安装包上传至服务器,并解压
- 服务端默认使用h2数据库,若需要改为mysql,则可修改安装包
app.yml
内的数据库配置,如下:
neutrino:data:db:type: mysql# 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化url: jdbc:mysql://xxxx:3306/neutrino-proxy?useUnicode=true&allowMultiQueries=true&useAffectedRows=true&useSSL=falsedriver-class: com.mysql.jdbc.Driver# 数据库帐号username: xxx# 数据库密码password: xxxneutrino: data: db: type: mysql # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化 url: jdbc:mysql://xxxx:3306/neutrino-proxy?useUnicode=true&allowMultiQueries=true&useAffectedRows=true&useSSL=false driver-class: com.mysql.jdbc.Driver # 数据库帐号 username: xxx # 数据库密码 password: xxxneutrino: data: db: type: mysql # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化 url: jdbc:mysql://xxxx:3306/neutrino-proxy?useUnicode=true&allowMultiQueries=true&useAffectedRows=true&useSSL=false driver-class: com.mysql.jdbc.Driver # 数据库帐号 username: xxx # 数据库密码 password: xxx
给与执行权限
chmod +x neutrino-proxy-serverchmod +x neutrino-proxy-serverchmod +x neutrino-proxy-server
启动服务端可执行程序即可
./neutrino-proxy-server./neutrino-proxy-server./neutrino-proxy-server
客户的部署
- 本地解压客户端安装包
- 修改
app.yml
文件中的server-ip为服务器公网ip,并配置license-key,以下是相关的部分配置: -
neutrino:proxy:tunnel:# ssl证书密钥(使用jjar包内自带的证书,则此处无需修改)key-store-password: 123456# ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径)jks-path: classpath:/test.jks# 代理服务端IPserver-ip: xxxx# 代理服务端IP, 若是非ssl端口,则ssl-enable需要配置为falseserver-port: 9002# 是否启用sslssl-enable: true# licenseKey,客户端凭证。此处需要配置刚刚从管理后台复制的LicenseKeylicense-key: xxxx
neutrino: proxy: tunnel: # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改) key-store-password: 123456 # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径) jks-path: classpath:/test.jks # 代理服务端IP server-ip: xxxx # 代理服务端IP, 若是非ssl端口,则ssl-enable需要配置为false server-port: 9002 # 是否启用ssl ssl-enable: true # licenseKey,客户端凭证。此处需要配置刚刚从管理后台复制的LicenseKey license-key: xxxx
neutrino: proxy: tunnel: # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改) key-store-password: 123456 # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径) jks-path: classpath:/test.jks # 代理服务端IP server-ip: xxxx # 代理服务端IP, 若是非ssl端口,则ssl-enable需要配置为false server-port: 9002 # 是否启用ssl ssl-enable: true # licenseKey,客户端凭证。此处需要配置刚刚从管理后台复制的LicenseKey license-key: xxxx
给与执行权限
chmod +x neutrino-proxy-clientchmod +x neutrino-proxy-clientchmod +x neutrino-proxy-client
直接启动客户端可执行程序即可
./neutrino-proxy-client./neutrino-proxy-client./neutrino-proxy-client
开机自启/守护程序
服务端创建 Systemd 服务文件
sudo vim /etc/systemd/system/neutrino-proxy-server.servicesudo vim /etc/systemd/system/neutrino-proxy-server.servicesudo vim /etc/systemd/system/neutrino-proxy-server.service
填入以下内容(注意修改你的可执行文件实际路径)
[Unit]Description=Neutrino Proxy ServerAfter=network.target[Service]ExecStart=/root/neiwang/neutrino-proxy-serverRestart=alwaysUser=rootWorkingDirectory=/root/neiwang[Install]WantedBy=multi-user.target[Unit] Description=Neutrino Proxy Server After=network.target [Service] ExecStart=/root/neiwang/neutrino-proxy-server Restart=always User=root WorkingDirectory=/root/neiwang [Install] WantedBy=multi-user.target[Unit] Description=Neutrino Proxy Server After=network.target [Service] ExecStart=/root/neiwang/neutrino-proxy-server Restart=always User=root WorkingDirectory=/root/neiwang [Install] WantedBy=multi-user.target
服务端创建 Systemd 服务文件
sudo vim /etc/systemd/system/neutrino-proxy-client.servicesudo vim /etc/systemd/system/neutrino-proxy-client.servicesudo vim /etc/systemd/system/neutrino-proxy-client.service
填入以下内容(注意修改你的可执行文件实际路径)
[Unit]Description=Neutrino Proxy ClientAfter=network.target[Service]ExecStart=/root/neiwang/neutrino-proxy-clientRestart=alwaysUser=rootWorkingDirectory=/root/neiwang[Install]WantedBy=multi-user.target[Unit] Description=Neutrino Proxy Client After=network.target [Service] ExecStart=/root/neiwang/neutrino-proxy-client Restart=always User=root WorkingDirectory=/root/neiwang [Install] WantedBy=multi-user.target[Unit] Description=Neutrino Proxy Client After=network.target [Service] ExecStart=/root/neiwang/neutrino-proxy-client Restart=always User=root WorkingDirectory=/root/neiwang [Install] WantedBy=multi-user.target
重载 Systemd 配置:
sudo systemctl daemon-reloadsudo systemctl daemon-reloadsudo systemctl daemon-reload
启用并启动服务:
启用并启动 neutrino-proxy-server
服务:
sudo systemctl enable neutrino-proxy-serversudo systemctl start neutrino-proxy-serversudo systemctl enable neutrino-proxy-server sudo systemctl start neutrino-proxy-serversudo systemctl enable neutrino-proxy-server sudo systemctl start neutrino-proxy-server
启用并启动 neutrino-proxy-client
服务:
sudo systemctl enable neutrino-proxy-clientsudo systemctl start neutrino-proxy-clientsudo systemctl enable neutrino-proxy-client sudo systemctl start neutrino-proxy-clientsudo systemctl enable neutrino-proxy-client sudo systemctl start neutrino-proxy-client
检查服务状态
sudo systemctl status neutrino-proxy-serversudo systemctl status neutrino-proxy-clientsudo systemctl status neutrino-proxy-server sudo systemctl status neutrino-proxy-clientsudo systemctl status neutrino-proxy-server sudo systemctl status neutrino-proxy-client
这样设置后,两个服务将在系统启动时自动启动,并在出现故障时自动重启。