International troops opened fire on a bus carrying Afghan civilians Monday, killing four people, officials said, setting off anti-American protests in a key southern city where coalition forces hope to rally the public for a coming offensive against the Taliban.