Added Proxy Protocol V1 to Stream Proxy UI

- Added a checkbox for Proxy Protocol V1.
- Modified related Config setting function.
This commit is contained in:
Jemmy
2025-07-02 17:53:33 +08:00
parent b59ac47c8c
commit f92ff068f3
4 changed files with 28 additions and 6 deletions

View File

@@ -47,8 +47,7 @@ func (m *Manager) HandleAddProxyConfig(w http.ResponseWriter, r *http.Request) {
useTCP, _ := utils.PostBool(r, "useTCP")
useUDP, _ := utils.PostBool(r, "useUDP")
// useProxyProtocol, _ := utils.PostBool(r, "useProxyProtocol")
useProxyProtocol := true
useProxyProtocol, _ := utils.PostBool(r, "useProxyProtocol")
//Create the target config
newConfigUUID := m.NewConfig(&ProxyRelayOptions{
@@ -78,6 +77,7 @@ func (m *Manager) HandleEditProxyConfigs(w http.ResponseWriter, r *http.Request)
proxyAddr, _ := utils.PostPara(r, "proxyAddr")
useTCP, _ := utils.PostBool(r, "useTCP")
useUDP, _ := utils.PostBool(r, "useUDP")
useProxyProtocol, _ := utils.PostBool(r, "useProxyProtocol")
newTimeoutStr, _ := utils.PostPara(r, "timeout")
newTimeout := -1
@@ -90,7 +90,7 @@ func (m *Manager) HandleEditProxyConfigs(w http.ResponseWriter, r *http.Request)
}
// Call the EditConfig method to modify the configuration
err = m.EditConfig(configUUID, newName, listenAddr, proxyAddr, useTCP, useUDP, newTimeout)
err = m.EditConfig(configUUID, newName, listenAddr, proxyAddr, useTCP, useUDP, useProxyProtocol, newTimeout)
if err != nil {
utils.SendErrorResponse(w, err.Error())
return

View File

@@ -42,7 +42,7 @@ type ProxyRelayConfig struct {
ProxyTargetAddr string //Proxy target address
UseTCP bool //Enable TCP proxy
UseUDP bool //Enable UDP proxy
UseProxyProtocol bool //Enable Proxy Protocol
UseProxyProtocol bool //Enable Proxy Protocol
Timeout int //Timeout for connection in sec
tcpStopChan chan bool //Stop channel for TCP listener
udpStopChan chan bool //Stop channel for UDP listener
@@ -184,7 +184,7 @@ func (m *Manager) GetConfigByUUID(configUUID string) (*ProxyRelayConfig, error)
}
// Edit the config based on config UUID, leave empty for unchange fields
func (m *Manager) EditConfig(configUUID string, newName string, newListeningAddr string, newProxyAddr string, useTCP bool, useUDP bool, newTimeout int) error {
func (m *Manager) EditConfig(configUUID string, newName string, newListeningAddr string, newProxyAddr string, useTCP bool, useUDP bool, useProxyProtocol bool, newTimeout int) error {
// Find the config with the specified UUID
foundConfig, err := m.GetConfigByUUID(configUUID)
if err != nil {
@@ -204,6 +204,7 @@ func (m *Manager) EditConfig(configUUID string, newName string, newListeningAddr
foundConfig.UseTCP = useTCP
foundConfig.UseUDP = useUDP
foundConfig.UseProxyProtocol = useProxyProtocol
if newTimeout != -1 {
if newTimeout < 0 {

View File

@@ -145,7 +145,7 @@ func (c *ProxyRelayConfig) Port2host(allowPort string, targetAddress string, sto
//Connection error. Retry
continue
}
log.Println("[+]", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
go func(targetAddress string) {
log.Println("[+]", "start connect host:["+targetAddress+"]")
target, err := net.Dial("tcp", targetAddress)