mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-29 16:06:36 +08:00
修复出口协议无法选择,加入自定义转发端口,增加arm支持
This commit is contained in:
@@ -21,4 +21,6 @@ public class ForwardDto {
|
||||
private String remoteAddr;
|
||||
|
||||
private String strategy;
|
||||
|
||||
private Integer inPort;
|
||||
}
|
||||
@@ -25,4 +25,6 @@ public class ForwardUpdateDto {
|
||||
|
||||
private String strategy;
|
||||
|
||||
private Integer inPort;
|
||||
|
||||
}
|
||||
@@ -57,5 +57,5 @@ public interface TunnelService extends IService<Tunnel> {
|
||||
*/
|
||||
R diagnoseTunnel(Long tunnelId);
|
||||
|
||||
Integer getNodePort(Long nodeId, Integer type);
|
||||
Integer getNodePort(Long nodeId, Integer type, Integer port);
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
|
||||
|
||||
List<ChainTunnel> chainTunnels = chainTunnelService.list(new QueryWrapper<ChainTunnel>().eq("tunnel_id", tunnel.getId()).eq("chain_type", 1));
|
||||
for (ChainTunnel chainTunnel : chainTunnels) {
|
||||
Integer nodePort = tunnelService.getNodePort(chainTunnel.getNodeId(), 2);
|
||||
Integer nodePort = tunnelService.getNodePort(chainTunnel.getNodeId(), 2, forwardDto.getInPort());
|
||||
|
||||
ForwardPort forwardPort = new ForwardPort();
|
||||
forwardPort.setForwardId(forward.getId());
|
||||
@@ -205,7 +205,7 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
|
||||
return R.err(permissionResult.getErrorMessage());
|
||||
}
|
||||
|
||||
UserTunnel userTunnel = null;
|
||||
UserTunnel userTunnel;
|
||||
if (currentUser.getRoleId() != 0) {
|
||||
userTunnel = getUserTunnel(currentUser.getUserId(), tunnel.getId().intValue());
|
||||
if (userTunnel == null) {
|
||||
@@ -236,6 +236,13 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
|
||||
if (forwardPort == null){
|
||||
return R.err("部分节点不存在1");
|
||||
}
|
||||
if (forwardUpdateDto.getInPort() != null && !forwardUpdateDto.getInPort().equals(forwardPort.getPort())) {
|
||||
Integer nodePort = tunnelService.getNodePort(forwardPort.getNodeId(), 2, forwardUpdateDto.getInPort());
|
||||
if (Objects.equals(nodePort, forwardUpdateDto.getInPort())) {
|
||||
forwardPort.setPort(nodePort);
|
||||
forwardPortService.updateById(forwardPort);
|
||||
}
|
||||
}
|
||||
GostUtil.AddAndUpdateService(serviceName, limiter, node, existForward, forwardPort, tunnel, "UpdateService");
|
||||
}
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements No
|
||||
ViteConfig viteConfig = viteConfigService.getOne(new QueryWrapper<ViteConfig>().eq("name", "ip"));
|
||||
if (viteConfig == null) return R.err("请先前往网站配置中设置ip");
|
||||
StringBuilder command = new StringBuilder();
|
||||
command.append("curl -L https://github.com/bqlpfy/flux-panel/releases/download/2.0.1-beta/install.sh")
|
||||
command.append("curl -L https://github.com/bqlpfy/flux-panel/releases/download/2.0.2-beta/install.sh")
|
||||
.append(" -o ./install.sh && chmod +x ./install.sh && ");
|
||||
String processedServerAddr = processServerAddress(viteConfig.getValue());
|
||||
command.append("./install.sh")
|
||||
|
||||
@@ -81,7 +81,7 @@ public class TunnelServiceImpl extends ServiceImpl<TunnelMapper, Tunnel> impleme
|
||||
Node node = nodeService.getById(chain_node.getNodeId());
|
||||
if (node == null) return R.err("节点不存在");
|
||||
nodes.put(node.getId(), node);
|
||||
Integer nodePort = getNodePort(chain_node.getNodeId(), 1);
|
||||
Integer nodePort = getNodePort(chain_node.getNodeId(), 1, null);
|
||||
chain_node.setPort(nodePort);
|
||||
chain_node.setInx(inx); // 设置转发链序号
|
||||
chainTunnels.add(chain_node);
|
||||
@@ -93,7 +93,7 @@ public class TunnelServiceImpl extends ServiceImpl<TunnelMapper, Tunnel> impleme
|
||||
Node node = nodeService.getById(out_node.getNodeId());
|
||||
if (node == null) return R.err("节点不存在");
|
||||
nodes.put(node.getId(), node);
|
||||
Integer nodePort = getNodePort(out_node.getNodeId(), 1);
|
||||
Integer nodePort = getNodePort(out_node.getNodeId(), 1, null);
|
||||
out_node.setPort(nodePort);
|
||||
chainTunnels.add(out_node);
|
||||
}
|
||||
@@ -472,7 +472,7 @@ public class TunnelServiceImpl extends ServiceImpl<TunnelMapper, Tunnel> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getNodePort(Long nodeId,Integer type) {
|
||||
public Integer getNodePort(Long nodeId,Integer type, Integer port) {
|
||||
|
||||
Node node = nodeService.getById(nodeId);
|
||||
if (node == null){
|
||||
@@ -508,6 +508,9 @@ public class TunnelServiceImpl extends ServiceImpl<TunnelMapper, Tunnel> impleme
|
||||
if (type == 1) {
|
||||
return availablePorts.getLast();
|
||||
}else {
|
||||
if (port != null && availablePorts.contains(port)) {
|
||||
return port;
|
||||
}
|
||||
return availablePorts.getFirst();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user