如何在Web服务器80端口开启上开启SSH服务

我们实验室在学校里面有一台服务器,带一个公网ip,但是只开了一个80端口,22端口竟然不给开!!!这让我很是不爽。之前一直待学校里,不给开我忍忍就算了,最近搬到了个没有校园网的偏远地方,连不上实验室的服务器实在是不能忍。于是重新折腾之前安装在服务器上的haproxy。
安装教程网络上到处到有,我按照网上的教程安装好haproxy后,再按照知乎上的
教程配置之后,发现只在80端口访问网站是可以,但是用svn客户端访问我服务器上的svn返回错误,好像是显示option选项不支持之类的,受到
这篇文章的启发,我觉得是在http的acl里面配置少了option选项,于是一口气把http所有的头选项都回到匹配项里,像这样子:
#GET POS(T) PUT DEL(ETE) OPT(IONS) HEA(D) CON(NECT) TRA(CE)
acl is_http req.payload(0,3) -m bin f53 54c 4f 434f4e 545241
于是把svn的问题解决了。
接下来是ssh的问题,直接在acl匹配字符串SSH,然后每次在本地连接80端口都是返回以下错误:
ssh_exchange_identification: Connection closed by remote host
而直接连接22端口却没有问题。在网上搜索这个错误都说是黑名单之类的错误,但是我觉得这里并不是这个原因。后来抓包研究了下ssh协议,觉得并不是所有ssh数据包开头都是字符串SSH,所以acl简单粗暴地认为只有以字符串SSH开头的包才转发到22端口是不对的,应该更加简单粗暴地把http以外的数据包都转发到22端口,于是我把转发到22端口的配置语句的if条件去掉,问题得以解决。
以下是完整的配置文件/etc/haproxy/haproxy.cfg,其中http和ssh功能是测试过的,https没有测试,不知道能不能用。22端口是ssh服务器,82端口是http服务器,都是从外网的80端口进行访问。
#---------------------------------------------------------------------
# Example configuration for a possible web application.
# full configuration options online.
http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
# to have these messages end up in /var/log/haproxy.log you will
# need to:
# 1) configure syslog to accept network log events.
This is done
by adding the '-r' option to the SYSLOGD_OPTIONS in
/etc/sysconfig/syslog
# 2) configure local2 events to go to the /var/log/haproxy.log
file. A line like the following can be added to
/etc/sysconfig/syslog
/var/log/haproxy.log
127.0.0.1 local0
127.0.0.1 local1 notice
/var/lib/haproxy
/var/run/haproxy.pid
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
dontlognull
option http-server-close
option forwardfor
except 127.0.0.0/8
redispatch
timeout http-request
timeout queue
timeout connect
timeout client
timeout server
timeout http-keep-alive 10s
timeout check
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
main *:5000
acl url_static
-i /static /images /javascript /stylesheets
acl url_static
-i .jpg .gif .png .css .js
use_backend static
if url_static
default_backend
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
roundrobin
static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
roundrobin
app1 127.0.0.1:5001 check
app2 127.0.0.1:5002 check
app3 127.0.0.1:5003 check
app4 127.0.0.1:5004 check
frontend main
log global
option tcplog
log-format %ft\ %b/%s
tcp-request inspect-delay 3s
acl is_https req.payload(0,3) -m bin 160301
#GET POS(T) PUT DEL(ETE) OPT(IONS) HEA(D) CON(NECT) TRA(CE)
acl is_http req.payload(0,3) -m bin f53 54c 4f 434f4e 545241
acl is_ssh req.payload(0,3) -m bin 535348
tcp-request content accept if is_http
tcp-request content accept if is_https
#tcp-request content accept if is_ssh
tcp-request content accept
use_backend https if is_https
use_backend http if is_http
#use_backend ssh if is_ssh
use_backend ssh
backend ssh
#server ssh01 127.0.0.1:22 maxconn 10 check inter 3s
timeout server 1h
server server-ssh :22
backend http
server ngx01 127.0.0.1:82 maxconn 10 check inter 3s
backend https
server ngx02 127.0.0.1:433 maxconn 10 check inter 3s
Haproxy实战:80端口转发到webserver和ssh
转自:siukwan的个人博客-Haproxy实战:80端口转发到webserver和ssh
服务器原来配置了haproxy,因为对外只开放了80端口,没有开放22端口,所以haproxy配...
外网流量转发到本地
有时候在对接第三方服务时,需要将外网流量转发到本地,方便调试。
这个可以使用ssh的远程转发功能实现,关于ssh转发,这里有一篇比较好的文章:
https://www.ibm.com/develo...
负载均衡之Haproxy配置详解(及httpd配置)
下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1、web2、web3、img1、img2.但是由于haproxy会存在单点故障问题,因此使...
大量短连接导致haproxy服务器端口耗尽
现象1:在haproxy中间件层查看netstat会有大量的time_wait,大概有几万个以上
现象2:查看haproxy日志会有部分显示端口耗尽
9 14:59:04...
http://blog.sina.com.cn/s/blog_01jv9h.html
此文基本是翻译aloha的一篇文档,本人实际使用情况遇到的问题类似,但不是MySQL。
haproxy是一款非常的专业的全7层的反向代理负载均衡器,采用的是epoll机制,可以实现4层和7层的负载均衡,4层使用的是tcp模式可以模拟lvs,7层使用的是httpd模式可以模拟nginx,n...
1 简介HAProxy 是单线程,事件驱动架构。
haproxy是一款非常的专业的全7层的反向代理负载均衡器,采用的是epoll机制,可以实现4层和7层的负载均衡,4层使用的是tcp模式可以模拟lv...
让一个端口同时做两件事:http/https和ssh相信很多人都在YY:能不能让80端口分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache、Nginx等)处理,如果是ssh...
没有更多推荐了,2030人使用
2596人使用
¥ 1274/月
¥ 1274/月
¥ 1274/月
¥ 1774/月
¥ 1274/月
你可能感兴趣网易博客网站关停、迁移的公告:
将从日00:00起正式停止网易博客运营
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(11526)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Linux防火墙Iptable如何设置只允许某个ip访问80端口,只允许特定ip访问某端口',
blogAbstract:'原文:
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}20个最受欢迎的Linux命令,你同意么?_Linux教程_Linux公社-Linux系统门户网站
你好,游客
20个最受欢迎的Linux命令,你同意么?
来源:Linux中国&
作者:Linux
本文根据网站的历史排名,筛选出了前20个得票最高的Linux命令。看看你都能熟练使用了吗?
1. 以 root 帐户执行上一条命令
2. 利用 Python 搭建一个简单的 Web 服务器
可通过 http://$HOSTNAME:8000访问
python -m SimpleHTTPServer
3. 切换到上一次访问的目录
4. 将上一条命令中的 foo 替换为 bar,并执行
5. traceroute + ping
mtr google.com
6. 快速调用一个编辑器来编写一个命令
7. 执行一个命令,但不保存在命令历史记录中
8. 重新初始化终端
9. 调出上次命令使用的参数
'ALT+.'or'&ESC& .'
10. 以更加清晰的方式显示当前系统挂载的文件系统
mount | column -t
11. 在给定的时间执行命令
echo "ls -l"| at midnight
12. 通过DNS控制台查询维基百科
dig +short txt &keyword&.wp.dg.cx
13. 从80端口向你本地的2001端口开启隧道
ssh -N -L2001:localhost:80 somemachine
14. 快速访问ASCII表
15. 获取你的外部IP地址
curl ifconfig.me
16. !! 表示重复执行上一条命令,并用 :gs/foo/bar 进行替换操作
!!:gs/foo/bar
17. 输出你的麦克风到远程机器的扬声器
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
18. 挂载一个临时的内存分区
mount -t tmpfs tmpfs /mnt -o size=1024m
19. 以SSH方式挂载目录/文件系统
sshfs name@server:/path/to/folder /path/to/mount/point
20. 通过curl更新Twitter
curl -u user:pass-d status="Tweeting from the shell"&a href="http://twitter.com/statuses/update.xml"&http://twitter.com/statuses/update.xml&/a&
via : http://code.csdn.net/news/2819566
Linux命令之cd
Linux命令之cat
Linux命令之alias/unalias
Linux命令解析:su root和su -root
Linux命令之 交互式输入read
本文永久更新链接地址:
相关资讯 & & &
& (11/29/:52)
& (07/14/:55)
& (11/15/:47)
& (08/23/:55)
& (04/30/:42)
& (10/09/:51)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 服务器80端口不能用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信