fatedier / frp Goto Github PK
View Code? Open in Web Editor NEWA fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
License: Apache License 2.0
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
License: Apache License 2.0
显示个连接状态,不然每次要实际上连接一次才知道有无连接成功。
thanks.
首先感谢开发者。
经测试ssh和80端口的http协议都正常工作。可是443端口的https协议似乎有问题。
客户端
# frpc.ini
[web02]
type = https
local_ip = 127.0.0.1
local_port = 443
[privilege_web]
privilege_mode = true
type = https
local_ip = 127.0.0.1
local_port = 443
use_gzip = true
custom_domains = 192.168.1.3
#web03.yourdomain.com
host_header_rewrite = 192.168.1.3
#example.com
服务端 frps.ini
vhost_http_port = 80
vhost_https_port = 443
[web02]
type = https
auth_token = 123
custom_domains = 144.172.70.47
#web02.yourdomain.com
尝试https连接似乎客户端和服务端都没有感知:
frpc.log
2016/08/22 15:05:47 [control.go:185][I] ProxyName [privilege_web], connect to server [144.172.70.47:7000] success!
2016/08/22 15:05:47 [control.go:193][I] Start to send heartbeat to frps
2016/08/22 15:05:47 [control.go:185][I] ProxyName [ssh], connect to server [144.172.70.47:7000] success!
2016/08/22 15:05:47 [control.go:193][I] Start to send heartbeat to frps
2016/08/22 15:05:47 [control.go:185][I] ProxyName [web01], connect to server [144.172.70.47:7000] success!
2016/08/22 15:05:47 [control.go:193][I] Start to send heartbeat to frps
2016/08/22 15:05:47 [control.go:185][I] ProxyName [privilege_ssh], connect to server [144.172.70.47:7000] success!
2016/08/22 15:05:47 [control.go:193][I] Start to send heartbeat to frps
2016/08/22 15:05:47 [control.go:185][I] ProxyName [web02], connect to server [144.172.70.47:7000] success!
2016/08/22 15:05:47 [control.go:193][I] Start to send heartbeat to frps
frps.log
2016/08/22 01:05:46 [main.go:182][I] Start frps success
2016/08/22 01:05:46 [main.go:184][I] PrivilegeMode is enabled, you should pay more attention to security issues
2016/08/22 01:05:52 [control.go:308][I] ProxyName [privilege_web], start proxy success
2016/08/22 01:05:52 [control.go:310][I] ProxyName [privilege_web], created by PrivilegeMode
2016/08/22 01:05:52 [control.go:308][I] ProxyName [ssh], start proxy success
2016/08/22 01:05:52 [control.go:308][I] ProxyName [web01], start proxy success
2016/08/22 01:05:52 [control.go:308][I] ProxyName [web02], start proxy success
2016/08/22 01:05:52 [control.go:308][I] ProxyName [privilege_ssh], start proxy success
2016/08/22 01:05:52 [control.go:310][I] ProxyName [privilege_ssh], created by PrivilegeMode
不知道domain那里我是不是写错了,或者问题出在我本地的路由器,有端口转发。可是http并未出问题。
谢谢
I want to know whether all content should be forward by the server, or the server just give the address?
I set server adderess in frpc.ini, and run frpc -c frpc.ini
the log show:
2016/04/07 09:00:48 [main.go:101] [I] Start frpc success
2016/04/07 09:00:48 [control.go:130] [E] ProxyName [ssh], connect to server [0.0.0.0:7000] error, dial tcp 0.0.0.0:7000: connection refused
2016/04/07 09:00:48 [control.go:39] [E] ProxyName [ssh], connect to server failed!
2016/04/07 09:00:48 [main.go:104] [W] All proxy exit!
It seems it also use 0.0.0.0 as server. Please help me to tackle this problem. Thanks
同上!
Hi,
It's unclear to me if this tool provides NAT hole punching or not? I'm running a host behind a NAT. The admin of the NAT does not want to allow my host to be visible on the internet so he's only allowing outgoing connections from my host and replies. No incoming connections are allowed. Will this tool allow me to expose a service running on my host to the internet? Thanks.
在阿里云服务器 配置服务端,本地能 telnet 7000 端口,然后在家再telnet 7000 端口 不通。
Readme.md文档中说明了frpc 所在机器和 frps 所在机器的时间相差不能超过 15 分钟,因为时间戳会被用于加密验证中。
这里的时间差是指UTC时间,还是双方的本地时间差?
RT
help wanted.
方便的话,提供一个c或c++版本的反向代理功能库
方便大家在嵌入式系统上移植终端。
现在openwrt的开发环境不支持go语言。
客户端用64位服务端用32位可以吗?服务端系统太老
Does frp client support http_proxy like ngrok ?
单位电脑只能通过 http 代理上网。
I can connect to client directly, but when I connect through server using ssh [email protected] -p 6022
, it often stucked and after some time show:
ssh_exchange_identification: Connection closed by remote host
I can only login 1 times in 10.
When I forward 80 port, it works well.
I want to know whether it will missing some information?
The configs are as bellow:
server:
[ssh]
auth_token = password
bind_addr = 0.0.0.0
listen_port = 6022
client:
[ssh]
local_ip = 127.0.0.1
local_port = 22
use_encryption = false
ssh log:
OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /Users/maple/.ssh/config
debug1: /Users/maple/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 102: Applying options for *
debug1: Connecting to my.server.ip [my.server.ip] port 6022.
debug1: Connection established.
debug1: identity file /Users/maple/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/maple/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: ssh_exchange_identification:
debug1: ssh_exchange_identification: \024\247 u\234\333\373\030\357]-]\247\210\366\241
debug1: ssh_exchange_identification: dsa-sha2-nistp256,ssh-ed25519
debug1: ssh_exchange_identification: ator.liu.se
debug1: ssh_exchange_identification: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,h
debug1: ssh_exchange_identification: mac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug1: ssh_exchange_identification: [email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd
ssh_exchange_identification: Connection closed by remote host
I was trying frp server on my vps (bandwagon host), login as root. After modifying frps.ini,I execute
./frps -c ./frps.ini
and it returns
-bash: ./frps: Permission denied
Am I missed sth? I would appreciate if you could give tips.
Thanks !
是否可以将UDP协议也加进去?
你好!我怎么在 https://github.com/fatedier/frp/releases 上下载不了能,能不能发这一份windows 和 linux 的版本
报错信息如下
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x80df603]
goroutine 8 [running]:
frp/models/server.(*ProxyServer).Start(0x189254a0, 0x1898c060, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/models/server/server.go:103 +0x3d3
main.doLogin(0x1898c0f0, 0x1898c060, 0x1, 0x0, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:231 +0x64b
main.controlWorker(0x1898c060)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:71 +0x471
created by main.ProcessControlConn
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:38 +0x11b
goroutine 1 [chan receive]:
frp/utils/conn.(*Listener).Accept(0x1898a460, 0x84c695c, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:75 +0x4a
main.ProcessControlConn(0x1898a460)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:33 +0x2f
main.main()
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/main.go:162 +0x1217
goroutine 5 [IO wait]:
net.runtime_pollWait(0xb7618500, 0x72, 0x1897f180)
/usr/lib/golang/src/runtime/netpoll.go:157 +0x55
net.(*pollDesc).Wait(0x18967438, 0x72, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:73 +0x35
net.(*pollDesc).WaitRead(0x18967438, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:78 +0x33
net.(*netFD).accept(0x18967400, 0x0, 0xb7618618, 0x1897f190)
/usr/lib/golang/src/net/fd_unix.go:408 +0x20b
net.(*TCPListener).AcceptTCP(0x18827a70, 0x189674c0, 0x0, 0x0)
/usr/lib/golang/src/net/tcpsock_posix.go:254 +0x47
frp/utils/conn.Listen.func1(0x18827a58)
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:53 +0x34
created by frp/utils/conn.Listen
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:68 +0x2b8
goroutine 6 [IO wait]:
net.runtime_pollWait(0xb7618488, 0x72, 0x1897f0c0)
/usr/lib/golang/src/runtime/netpoll.go:157 +0x55
net.(*pollDesc).Wait(0x189675b8, 0x72, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:73 +0x35
net.(*pollDesc).WaitRead(0x189675b8, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:78 +0x33
net.(*netFD).accept(0x18967580, 0x0, 0xb7618618, 0x1897f0d0)
/usr/lib/golang/src/net/fd_unix.go:408 +0x20b
net.(*TCPListener).AcceptTCP(0x18827ac8, 0x8093300, 0x0, 0x0)
/usr/lib/golang/src/net/tcpsock_posix.go:254 +0x47
net/http.tcpKeepAliveListener.Accept(0x18827ac8, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:2135 +0x3d
net/http.(*Server).Serve(0x18967540, 0xb76185f8, 0x18827ac8, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:1887 +0x98
net/http.(*Server).ListenAndServe(0x18967540, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:1877 +0xe4
net/http.ListenAndServe(0x1897f060, 0xc, 0xb76185c0, 0x18900f50, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:1967 +0x7a
github.com/gin-gonic/gin.(*Engine).Run(0x18900f50, 0x18827a98, 0x1, 0x1, 0x0, 0x0)
/root/src/github.com/fatedier/frp/Godeps/_workspace/src/github.com/gin-gonic/gin/gin.go:226 +0x15d
created by frp/models/server.RunDashboardServer
/root/src/github.com/fatedier/frp/src/frp/models/server/dashboard.go:33 +0x28f
goroutine 7 [IO wait]:
net.runtime_pollWait(0xb7618410, 0x72, 0x1880e080)
/usr/lib/golang/src/runtime/netpoll.go:157 +0x55
net.(*pollDesc).Wait(0x189676b8, 0x72, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:73 +0x35
net.(*pollDesc).WaitRead(0x189676b8, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:78 +0x33
net.(*netFD).Read(0x18967680, 0x1898e000, 0x1000, 0x1000, 0x0, 0xb7613030, 0x1880e080)
/usr/lib/golang/src/net/fd_unix.go:232 +0x19a
net.(*conn).Read(0x18827ad0, 0x1898e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/golang/src/net/net.go:172 +0xb9
bufio.(*Reader).fill(0x1898c030)
/usr/lib/golang/src/bufio/bufio.go:97 +0x172
bufio.(*Reader).ReadSlice(0x1898c030, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/bufio/bufio.go:328 +0x1b4
bufio.(*Reader).ReadBytes(0x1898c030, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/bufio/bufio.go:406 +0x8c
bufio.(*Reader).ReadString(0x1898c030, 0x18824f0a, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/bufio/bufio.go:446 +0x46
frp/utils/conn.(*Conn).ReadLine(0x1898c000, 0x0, 0x0, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:132 +0x45
main.controlWorker(0x1898c000)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:57 +0x75
created by main.ProcessControlConn
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:38 +0x11b
zonek@ubuntu-512mb-sfo1-01:~/bin/frp$ ls^C
zonek@ubuntu-512mb-sfo1-01:~/bin/frp$ sudo ./frps_linux_386 -c frps.ini
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x80df603]
goroutine 7 [running]:
frp/models/server.(*ProxyServer).Start(0x189234a0, 0x18815fb0, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/models/server/server.go:103 +0x3d3
main.doLogin(0x1898c0c0, 0x18815fb0, 0x1, 0x0, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:231 +0x64b
main.controlWorker(0x18815fb0)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:71 +0x471
created by main.ProcessControlConn
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:38 +0x11b
goroutine 1 [chan receive]:
frp/utils/conn.(*Listener).Accept(0x1898a380, 0x84c695c, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:75 +0x4a
main.ProcessControlConn(0x1898a380)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:33 +0x2f
main.main()
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/main.go:162 +0x1217
goroutine 5 [IO wait]:
net.runtime_pollWait(0xb75ce508, 0x72, 0x1897f1b0)
/usr/lib/golang/src/runtime/netpoll.go:157 +0x55
net.(*pollDesc).Wait(0x189673f8, 0x72, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:73 +0x35
net.(*pollDesc).WaitRead(0x189673f8, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:78 +0x33
net.(*netFD).accept(0x189673c0, 0x0, 0xb75ce620, 0x1897f1c0)
/usr/lib/golang/src/net/fd_unix.go:408 +0x20b
net.(*TCPListener).AcceptTCP(0x18823a70, 0x18967480, 0x0, 0x0)
/usr/lib/golang/src/net/tcpsock_posix.go:254 +0x47
frp/utils/conn.Listen.func1(0x18823a58)
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:53 +0x34
created by frp/utils/conn.Listen
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:68 +0x2b8
goroutine 6 [IO wait]:
net.runtime_pollWait(0xb75ce490, 0x72, 0x1897f0f0)
/usr/lib/golang/src/runtime/netpoll.go:157 +0x55
net.(*pollDesc).Wait(0x18967578, 0x72, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:73 +0x35
net.(*pollDesc).WaitRead(0x18967578, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:78 +0x33
net.(*netFD).accept(0x18967540, 0x0, 0xb75ce620, 0x1897f100)
/usr/lib/golang/src/net/fd_unix.go:408 +0x20b
net.(*TCPListener).AcceptTCP(0x18823ac8, 0x8093300, 0x0, 0x0)
/usr/lib/golang/src/net/tcpsock_posix.go:254 +0x47
net/http.tcpKeepAliveListener.Accept(0x18823ac8, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:2135 +0x3d
net/http.(*Server).Serve(0x18967500, 0xb75ce600, 0x18823ac8, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:1887 +0x98
net/http.(*Server).ListenAndServe(0x18967500, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:1877 +0xe4
net/http.ListenAndServe(0x1897f090, 0xc, 0xb75ce5c8, 0x188fee70, 0x0, 0x0)
/usr/lib/golang/src/net/http/server.go:1967 +0x7a
github.com/gin-gonic/gin.(*Engine).Run(0x188fee70, 0x18823a98, 0x1, 0x1, 0x0, 0x0)
/root/src/github.com/fatedier/frp/Godeps/_workspace/src/github.com/gin-gonic/gin/gin.go:226 +0x15d
created by frp/models/server.RunDashboardServer
/root/src/github.com/fatedier/frp/src/frp/models/server/dashboard.go:33 +0x28f
goroutine 8 [IO wait]:
net.runtime_pollWait(0xb75ce3a0, 0x72, 0x1880e0b0)
/usr/lib/golang/src/runtime/netpoll.go:157 +0x55
net.(*pollDesc).Wait(0x18967738, 0x72, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:73 +0x35
net.(*pollDesc).WaitRead(0x18967738, 0x0, 0x0)
/usr/lib/golang/src/net/fd_poll_runtime.go:78 +0x33
net.(*netFD).Read(0x18967700, 0x1898f000, 0x1000, 0x1000, 0x0, 0xb75c9030, 0x1880e0b0)
/usr/lib/golang/src/net/fd_unix.go:232 +0x19a
net.(*conn).Read(0x18823ae0, 0x1898f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/golang/src/net/net.go:172 +0xb9
bufio.(*Reader).fill(0x1898c060)
/usr/lib/golang/src/bufio/bufio.go:97 +0x172
bufio.(*Reader).ReadSlice(0x1898c060, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/bufio/bufio.go:328 +0x1b4
bufio.(*Reader).ReadBytes(0x1898c060, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/bufio/bufio.go:406 +0x8c
bufio.(*Reader).ReadString(0x1898c060, 0x1882170a, 0x0, 0x0, 0x0, 0x0)
/usr/lib/golang/src/bufio/bufio.go:446 +0x46
frp/utils/conn.(*Conn).ReadLine(0x1898c030, 0x0, 0x0, 0x0, 0x0)
/root/src/github.com/fatedier/frp/src/frp/utils/conn/conn.go:132 +0x45
main.controlWorker(0x1898c030)
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:57 +0x75
created by main.ProcessControlConn
/root/src/github.com/fatedier/frp/src/frp/cmd/frps/control.go:38 +0x11b
Hi, all
Can we add support for json and yaml configure file?
可以实现远程端口到本地到本地吗?本地电脑在内网且IP不固定,没法在本地安装服务端。
谢谢提供这么好的工具。
请问frps可以监听ipv6的端口吗
你好,首先感谢提供这样的工具。
我之前是通过ssh隧道来把我内网的web应用映射出去,现在换成你这个工具,但是我没有域名,只想通过ip,即没有配置custom_domains,可以实现吗?或者是现在已经支持了,如何配置?
I have update frpc and frps to latest version,and add "use_gzip = true" into frpc.ini,but when i look by dashboard,it show Gzip false,why? Whether i need to config frps.ini file?
我刚把 frpc 和 frps 升级到最新的版本,并且在 frpc.ini 中,加上了 “use_gzip = true” 的配置信息,但是我通过 dashboard 查看的时候,还是显示的没开启 Gzip。是不是还需要配置 frps.ini 文件,或者会是其它什么原因了?
### frpc.ini
[common]
......
server_port = 7000
log_file = /jffs/frp/frpc.log
log_level = info
log_max_days = 3
[nas]
......
pool_count = 10
use_encryption = false
use_gzip = true
我是在自己的路由器上用翻墙,路由器编译非常麻烦,能不能给帮忙编一个arm版本,每次发布的时候
vhost_http_port = 8080
在配置中这样就绑定了8080端口
但是在我的应用中 我希望不同的web配置绑定不同的端口
2016/08/04 16:54:04 [control.go:181] [I] Start to send heartbeat to frps
2016/08/04 16:54:21 [conn.go:182] [W] join connections error, read tcp 192.168.1.190:41386->192.168.1.190:18080: read tcp 192.168.1.190:44203->121.40.217.143:47000: use of closed network connection
如题
用了一段时间,并通过验证,确认 FRP 有严重的性能问题,和 ngrok 一样,用一段时间后,服务器的性能会严重下降,最终导致 服务 crash 掉。我的服务器上就装了 nginx,gogs(go语言编写的一个git服务端),然后如果开了 frp ,不到三天就会服务器反应缓慢,frp 直接 crash 掉。我担心是 gogs 影响的,然后就单独开了 gogs ,结果跑了好几天,一致很稳定,所以确认是 frp 的代码问题,希望作者尽快解决看看,还是很喜欢 frp 的,但是如果这个问题不解决,就不敢用了。
doc里面的二进制连接也不够醒目,为了不懂go语言的盆友,只是一般网管级别技术人员,而非开发人员,只是找工具使用。
建议:
1.直接将二进制下载 链接 放到 README*.md 文件里面,并单独章节醒目些(而不是在“下载源码”章节里面顺便提一下)。
2.windows发布,建议增加服务(service 保证windows启动时 s端自动已启动)指导说明:
NSSM - the Non-Sucking Service Manager
http://www.nssm.cc/
安装服务: nssm install frps x:\xxx\frp\frps.exe
启动服务:nssm start frps
停止服务:nssm stop frps
c发给s的流量, 还有发给访问者的流量(按C端区分),仅每天总量,目的是发现流量异常c端
远程服务器里有web服务,使用nginx作为服务前端,frp要如何配合nginx使用?
以下配置测试了行不通。需要如何配置
nginx配置:
server {
listen 80;
server_name demo.*;
location / {
proxy_pass http://127.0.0.1:7000;
}
}
frps.ini 配置
[common]
bind_port = 7000
vhost_http_port = 8008
[web01]
type = http
custom_domains = demo.exampledomain.com
frpc.ini 配置
[common]
server_addr = 162...*
[web01]
type = http
local_ip = 127.0.0.1
local_port = 80
服务端需要开一堆端口,能否简化下
前几天,在邮件中提过,这里再次写上来,补充些想法。
Ngrok 是免服务端配置的,指新增加一个c端配置,s端不用重改ini 且重启服务才能生效。
免服务端配置,起码适用于分享s端的盆友。
如 Ngrok 已知国内的 免费服务:
http://www.qydev.com/ 北京阿里云
http://www.ittun.com/ 深圳阿里云
http://www.natapp.cn/ 深圳阿里云(已商业化)
http://www.ngrok.cc/ 香港
http://www.gotunnel.org/ 香港
有些都是在校朋友,如,阿里云有在校生优惠计划,9.92元/月, 愿意分享的会公开给大家服务。
希望frp 借鉴 Ngrok, 增加仅c端配置模式。
另外,结合前面一个issues,或许加个流量限制参数,本来免费提供大家s端的,限制极端使用的用户超流量。
比如frps为linux,frpc为windows或者相反
我从github上的release上下载frp_0.8.0_linux_amd64.tar.gz,发现--reload没有效果,具体是我输入命令之后会出现Usage的提示,具体如下
root@root# ./frps -c ./frps.ini --reload
Usage:
frps [-c config_file] [-L log_file] [--log-level=<log_level>] [--addr=<bind_addr>]
frps --reload
frps -h | --help
frps -v | --version
目前是gzip/ aes / base64 顺序执行:压缩+aes加密+ASCII转码。
两个问题:
fatedier大哥,最近我发现了一个非常好的东西kcptun。
https://github.com/xtaci/kcptun
经过我简单测试之后,发现效果提升非常明显!不仅能降低延迟,而且传输速率等指标有显著地提升!
希望您能在以后的开发过程中融入此功能选择,集成在项目当中,最大优化本软件!
I can't compile that, The log are as:
go get github.com/fatedier/frp
package github.com/fatedier/frp
imports github.com/fatedier/frp
imports github.com/fatedier/frp: no buildable Go source files in /home/maple/ProgramFiles/golang/src/github.com/fatedier/frp
你好,
我想用下面的命令下载程序编译
go get github.com/fatedier/frp
但是提示错误
can't load package: package github.com/fatedier/frp: no buildable Go source files in /home/webadmin/golang_work/src/github.com/fatedier/frp
之前用这种方式安装的,挺方便的,现在是不支持这种安装方式了吗?
服务器端开启特权模式
# frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7500
vhost_http_port = 801
vhost_https_port = 443
dashboard_port = 7000
log_file = ./frps.log
log_level = info
log_max_days = 3
privilege_token is correct
privilege_mode = true
privilege_token = oxcm!Jkn/jQ(S?of
privilege_allow_ports = 2000-3000,3001,3003,4000-50000
max_pool_count = 100
客户端
# frpc.ini
[privilege_web1]
privilege_mode = true
type = http
local_ip = 127.0.0.1
local_port = 30000
use_gzip = true
use_encryption = true
custom_domains = xx.xxxx.xx
之后打开xx.xxxx.xx:801,frps就会自动退出,并且报错,错误内容如下
➜ frp ./frps -c frps.ini
panic: cipher.NewCBCEncrypter: IV length must equal block size
goroutine 25 [running]:
panic(0x794c80, 0xc82016b6a0)
/usr/lib/golang/src/runtime/panic.go:481 +0x3e6
crypto/cipher.NewCBCEncrypter(0x7f9ca8a6dcf0, 0xc8201757d0, 0xc820308760, 0x20, 0x20, 0x0, 0x0)
/usr/lib/golang/src/crypto/cipher/cbc.go:37 +0xa8
github.com/fatedier/frp/src/utils/pcrypto.(*Pcrypto).Encrypt(0xc820341eb8, 0xc820114380, 0x170, 0x1c0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/wcl/go_projects/src/github.com/fatedier/frp/src/utils/pcrypto/pcrypto.go:44 +0xd5
github.com/fatedier/frp/src/models/msg.pipeEncrypt(0xc82032e080, 0xc82032e240, 0xc82016b370, 0xe, 0x0, 0x0, 0xc82016b35c, 0x4, 0x10101, 0xc820174162, ...)
/home/wcl/go_projects/src/github.com/fatedier/frp/src/models/msg/process.go:242 +0x92c
github.com/fatedier/frp/src/models/msg.JoinMore.func1(0xc82032e080, 0xc82032e240)
/home/wcl/go_projects/src/github.com/fatedier/frp/src/models/msg/process.go:64 +0x104
created by github.com/fatedier/frp/src/models/msg.JoinMore
/home/wcl/go_projects/src/github.com/fatedier/frp/src/models/msg/process.go:80 +0x1ca
比如我有一台公网服务器,有多个内网服务器, 是否支持根据不同的域名/子域名访问不同的内网服务器?
原来用的 ngrok,问题好大,然后看到这个想试试。结果天朝的网络你懂的,下载下来,make以后一直没动静,作何能否编译几个常用的版本,比如 arm7,x86,x64 等
新手,平时在OSX环境下进行开发,想用这个替代ngrok。
按照示例配置启动frps和frpc之后,通过 ssh 访问内网机器,连接总是超时。
[root@iZ4i1kgqxZ ~]# ssh -oPort=6000 [email protected] ssh: connect to host 192.168.31.138 port 6000: Connection timed out
我在服务端启动了privilege_mode模式,在两台服务器上运行两个客户端,两个客户端的配置文件中privilege_token设置成和服务端的一样,remote_port不一样,但是出现了只能一台设备连接到服务器,另一台日志打印如下:
2016/08/22 19:30:52 [control.go:181][E] ProxyName [privilege_web], start proxy error, ProxyName [privilege_web], this proxy is already working now
2016/08/22 19:30:52 [control.go:39][E] ProxyName [privilege_web], connect to server failed!
提示被占用了,这个是bug么。
添加到开机自启后 日志显示connection refused,但是直接执行却是正常的。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.